More thoughts on building a Z-80 (64bit!!!)

From: Arfon Gryffydd <ArfonRG_at_DIEspammerSCUM.Texas.Net>
Date: Thu Oct 22 18:21:03 1998

>>
>> Okay, here's another hair-brained project that I am working on.....
>>
>> I am trying to basically build a 64Bit Z-80 on a board. What I am
>> looking for is: Anyone know of any chips that are EXTREMELY simple
>> micro-controllers but, work at EXTREMELY high clock rates??? I wanna put
>
>The first problem :
>Very few microcontrollers or microprocessors can be cascaded to increase
>the number of bits. There are synchronisation problems, flag problems
>(Stick 2 8 bit chips together, you end up with 2 carry flags, neither of
>them the true carry flag, and each one only testable by one of the
>processors), etc.

Answer... I really don't want to cascade them.... Okay.... a 64bit word
comes in.... You're using 8bit controllers..... One controller reads the
Z-80 instruction that says "move the contents of Register A to Register B"
That one interepting controller can either:
        1) take a bunch of clock cycles and move the Bytes itself while another
controller is working on the next instruction (figuring that the next
instruction is not dealing with Reg A or B). OR
        2) Tell a bunch of paralleled controllers to do the work.....
For math... some controllers and some look up tables....


>> a few on a board with some memory and made a 64-bit Z-80. I'd like the
>> processor to operate at 300Mcyc (or faster) clock speeds so, I figure I
>> need micro-controllers that operate at about 900 Mcyc to do the work.
>
>Surely you jest. 100MHz is possible on a homebrew (Double-sided +
>wirewrap board). Anything higher is a pain. 900MHz is not the sort of
>thing _I'd_ homebrew without a lot of thought.

WIRE_WRAP!?!?!?! ICK! I usually pull out my cheapo PCB CAD program......
A little laser-printer transfer plastic and an exacto-knife.


>That's apart from the fact that I've never seen a microcontroller that
>runs at anything like that speed. 20MHz, sure. 50MHz, maybe.

I cannot believe that there can be so many extremely complex processors out
there running up to 667Mcyc (Alpha) and there not be any simple controllers
with far less transistor counts that match or exceed those speeds.
There is no way we can get 600Mcyc clock speeds out of a 10,000,000
transistor chip but can't get at least that out of a 100,000 transistor
chip.

>> I want a Z-80's features with an Alpha's performance...
>
>Well, conmsidering that by going to 64 bits you have changed the
>instruction set somewhat, and by going to the bus speed you want you have
>made it difficult to link memory/peripherals to it (unlike the simple-ish
>Z80 bus), just which of the Z80 features are you thinking of retaining
>that are _not_ available on the Alpha?

Well, my thoughts are that when a bus transaction occurs, the u-processor
will send out a word size.... what ever peripherial (sp?) that is at that
address will send back a signal telling the processor if it can handle that
word size.... OR same idea (but only different).... A processor accesses
the address bus and the control bus.... BEFORE the processor places data
on the data bus, the peripherial forces a data width. (could be 5 control
lines indicating the # of bytes wide).

As for the Z-80 vs Alpha features.... I like:

1) I/O ports. I hate the memory map stuff. (yes, I know it is the way
things are done now)

0000H - A100H System
A200H - C200H Video
DA00H - DAFFH IDE HD 1

That sucks (in my opinion). (You like my 16bit addressing? kinda make you
yearn for the good 'ol days when you programmed in hex! Like real men! No
sir! We didn't have no Visual Basic or C+++++++++! When we wrote a silly
like program, it was an accomplishment! (....but they still were silly
little programs.)). But I digress....
I like:

IO port 0=Keyboard control
IO port 1=Keyboard data
IO port 2=Device 1 control
IO port 3=Device data
etc.
 
Your response: "But, what if you need to transfer a big block of data like
a NIC? You really need to memory map that."

My answer: "Pretend that the IO addresses are memory. With a 128 bit
address bus, you'll never run out of spaces!"

What else do I like about the Z-80 over the Alpha?

(((((((THE Z-BUS!!!)))))))) (not the Z380 bus, that's almost as hosed as
the Alpha bus).
Do the Z-80 bus but with the data size control lines that I explained
above.... (or keep a 64 bit data bus and run a local bus into a 'DMA' (for
a lack of a better word)... Wait! A bus mastering device!!!! (<-- better
word).)

Granted, I have just started looking at the Alpha's architecture but, for
some reason, I am finding the registers odd. (Mainly am not used to them.)

Wow! sorry, I feel like an evangelist here.

Arfon
"Programming today is a race between software engineers striving to build
bigger and better idiot-proof programs, and the Universe trying to produce
bigger and better idiots. So far, the Universe is winning." -- Rich Cook
Received on Thu Oct 22 1998 - 18:21:03 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:31:28 BST