From: "Peter "Firefly" Lund" on
On Fri, 5 Jan 2007, drhowarddrfine wrote:

> I've threatened to do something similar for many years. Cool. Good luck to
> you.

Thank you :)

What does your microarchitecture look like?

-Peter
From: Eric P. on
Peter \"Firefly\" Lund wrote:
>
> On Thu, 4 Jan 2007, Eric P. wrote:
>
> > Now it has been 30 years, but as far as I remember all microprocessor
> > bus protocols had some form of NOT_READY signal to handle slow devices.
> > If you know the device is fast enough you just ground the signal.
> > How is this different?
>
> Please google.

I did. The first few paragraphs of the newsletter you suggested say
http://linux.monroeccc.edu/~paulrsm/dg/dg01.htm
"The 68000, when writing data, places the data on the bus and
waits for an acknowledgement that the data has been received.
This is accomplished by placing a low logic level on pin 10,
DTACK (DaTa ACKnowledged). A read is performed by requesting data
from a device and waiting until a low logic level is placed on
pin 10 which acknowledges that the data is now available on the bus."

The remainder goes on about BERR (bus error) signal, which is
a different issue than DTACK and the 'asynchronous protocol'.
(while these may interact, that is a different issue as address
or data parity errors can also trigger BERR if desired).

As far as I can see, this 'asynchronous protocol' (their words)
is the same handshake as all other bus protocols.

(I used the quotes because usually the DTACK or NOT_READY or whatever
signal is sampled by the cpu on each clock edge after the transaction
is begun. So strictly speaking it is not 'asynchronous').

Eric

From: =?iso-8859-1?q?Torben_=C6gidius_Mogensen?= on
"Peter \"Firefly\" Lund" <firefly(a)diku.dk> writes:

> As for the programming model, I much prefer the 68000 over the
> 8086/8088, if we ignore compatibility issues (which tend to matter).
> Even if the 68000 had those annoying alignment issues (which tend to
> matter).
>
> Notice I wrote "68000" and "8086/8088".
>
> You could consider the partitioning of registers into address
> registers and data registers a mistake (I won't but some do).

I won't either. There are several advantages in splitting the
register file:

- You can have twice as many registers with the same number of
instruction bits, as which set you use will be implicitly given by
the opcode. This is somewhat offset by the need to duplicate some
instructions for both types of registers, though.

- Without multi-porting the register file(s), you can read/write two
registers at the same time (as long as they are of different kinds).

Torben
From: Eric P. on
"Eric P." wrote:
>
> Peter \"Firefly\" Lund wrote:
> >
> > On Thu, 4 Jan 2007, Eric P. wrote:
> >
> > > Now it has been 30 years, but as far as I remember all microprocessor
> > > bus protocols had some form of NOT_READY signal to handle slow devices.
> > > If you know the device is fast enough you just ground the signal.
> > > How is this different?
> >
> > Please google.
>
> I did. The first few paragraphs of the newsletter you suggested say
> http://linux.monroeccc.edu/~paulrsm/dg/dg01.htm
> "The 68000, when writing data, places the data on the bus and
> waits for an acknowledgement that the data has been received.
> This is accomplished by placing a low logic level on pin 10,
> DTACK (DaTa ACKnowledged). A read is performed by requesting data
> from a device and waiting until a low logic level is placed on
> pin 10 which acknowledges that the data is now available on the bus."
>
> The remainder goes on about BERR (bus error) signal, which is
> a different issue than DTACK and the 'asynchronous protocol'.
> (while these may interact, that is a different issue as address
> or data parity errors can also trigger BERR if desired).
>
> As far as I can see, this 'asynchronous protocol' (their words)
> is the same handshake as all other bus protocols.
>
> (I used the quotes because usually the DTACK or NOT_READY or whatever
> signal is sampled by the cpu on each clock edge after the transaction
> is begun. So strictly speaking it is not 'asynchronous').
>
> Eric

Ok I see what they are griping about. It has to do with
non-existent devices and the signal sense.

If the addressed device/ram is missing, a protocol that requires
an ack to proceed (DTACK) will hang the bus whereas a protocol that
requires an ack to hold (NOT_READY) will not hang.
The former case _must_ be dealt with in every design,
the later case you read junk data but the cpu doesn't hang.

Eric

From: drhowarddrfine on
Peter "Firefly" Lund wrote:
> On Fri, 5 Jan 2007, drhowarddrfine wrote:
>
>> I've threatened to do something similar for many years. Cool. Good
>> luck to you.
>
> Thank you :)
>
> What does your microarchitecture look like?
>
> -Peter
I never carried it through. I was putting together a bit-slice system
using ttl and, later, 2901s.

I did a lot of work with the 68000 with some computers I designed from
scratch for work, back in the day when PLAs were fairly new.
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Prev: Software vs Hardware
Next: Searching for the PDP-3