In general, most people want ISA. There are one or two people
that would rather have a simple, 'riscy' specific, cheap 8-bit bus.
Then there is the issue of how many ISA sockets to provide?
No external bus at all:
* Very cheap
* Make expansion rather difficult
R3000 specific high bandwidth bus (local bus?):
* Peripherals that we add later can go fast.
* Designing a high speed expander bus is problematical
(lots of wave calculations)
* Connectors for high speed busses are expensive.
* No cards available, unless we make them.
R3000 specific slow speed 8-bit bus:
* Cheap, small connectors
* Easy to provide for on the motherboard
* Simple to make cards for
* No cards available, unless we make them
* Supports many, many peripherals
* Allows other options for video on the motherboard
* Allows other options if SCSI is not used
* Large connectors are not the cheapest (though given the quantities
those things are made in, they probably are cheap)
* Will could not hope to support everything ISA (such as bus-
mastering mode, and maybe the bus sizing stuff).
* Uses lots of board space
A full AT ISA bus implementation provides:
* 8-bit or 16-bit data path
* Flexible throttling mechanism (automatic wait state generator)
* Slave and Master DMA modes
* Automatic 16 to 8-bit translation.
* 8.33 MHz clock rate
Of these features, the master DMA is probably the hardest to provide
since it requires access to the main memory. Without this, there doesn't
need to be any logic to handle an extra master DMA on the main memory
(bi-directional data buffers, bus size conversion, uni-directional
address buffers, control logic).
The 16 to 8-bit translation is a convenience for the programmer that
allows a 16 bit access to an 8-bit card; it can be programmed around.
Slave DMA can be easily attached to the 3730. The 3730 already provides
this type of DMA. To the software, programming a DMA would be different;
to the hardware, there is no change.
As for DMA to the 3041, the 3041 would need to take an active role in
it, like it would with any DMA. This would be fine.
The throttling is something that could be turned to our advantage. If
were to increase the speed of the ISA bus clock to 10 or 20 MHz, and
provide for this in the wait state generation, we could get more speed
to any future peripherals that we design while maintaining compatibility
to existing cards. (I have not researched this; there may be a very
good reason why this won't work).
If we are really clever, we could provide a simple write buffer on the
ISA bus that would allow the CPU to continue while the write completed.
(Note: The 16 MB memory limit is not a problem if there is no memory
provided on the bus and there are no Master DMA cards wanting to
access main memory.)
How many sockets to provide?
This is a question of how much board space we have and what others
Personally, I'd like to see four. Apart from being a nice round number,
most machines I've seen have eight sockets. One is usually crippled,
because its in a bad position, or doesn't have the 16-bit part of
the socket, leaving seven. We have SCSI, video and serial on the
motherboard, reducing the required ISA bus card count by three. I've
made some assumptions here, biased by person opinion.
Neil Russell (The wizard from OZ)
Pyramid Technology Email: firstname.lastname@example.org
3860 N. First Street Voice: (408) 428-7302
San Jose, CA 95134-1702 FAX: (408) 428-8845