• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

68K/early PPC with onboard AAUI 100mbps ethernet?

Cory5412

Daring Pioneer of the Future
Staff member
Is there some kind of document showing specifically that NuBus slots or ports (akin to PCIe lanes on modern architectures, I suppose) must be deployed in groups of three? Is it part of like one of the hardware dev notes or Inside Macintosh?

The other thing moving from some of the II series to the Quadra is that the Quadras also have onboard video, although I believe that video moved closer into the center of the architecture, which might explain why the 900 doesn't have four slots and the 700 isn't limited to one, presuming its architecture deploys three "ports".

On the Quadra 700 developer note (P.15 of the PDF) block diagram, Ethernet does not look like it's part of NuBus specifically. Ethernet is directly on the bus, NuBus slots are behind a NuBus controller.

 

Unknown_K

Well-known member
Even though its overkill, one should still see faster transfer speeds on a 100Mbit card on 68k machines. I thought putting an EISA 10/100 card in my 486 was overkill, but transfers were noticeably faster then using an ISA 10Mbit card. Part of it is likely because EISA has decent DMA bus mastering support, but transfers were above the 10Mbit limit.
EISA is kind of like PCI just less bandwidth so it will be much better then ISA. You will see faster speed with a 100Mb card on Nubus compared to just 10Mb, just don't expect full speed. There are 100Mb ISA Network cards as well (I have 1) but the bus will severely limit that card as well.

 

Gorgonops

Moderator
Staff member
So you can't really say 10MHz X 32 bits = 320 Mbps (40MB/s) throughput for NuBus.


This is off the top of my head (read: too lazy to google it and look it up right now), but I believe that quoted "40MB/s" rate for Nubus 90 is for a streaming block transfer mode in which a starting address is sent, followed by some number of contiguous 32 bit words. (I believe PCI offers a similar transfer mode.) That's the only circumstance under which the multiplexing doesn't cut the effective transfer rate by at least half.

Another wrinkle I also vaguely remember is I'd swear that on at least some of the Quadras that claim "Nubus 90" support said support is limited to busmastered transfers *between cards* (for instance, between a video capture card and storage controller), ie, the motherboard itself doesn't actually support block mode transfers. Not 100% sure about this one, though.
 

Still, 10 MB/s ought to be able to do a pretty good job of supporting 100 Mbps.
I used to have a 100Mb/s ethernet card that plugged into a PCMCIA (not cardbus) slot. Linux on a 486DX/100 laptop could push a bit over 4Mb/s over that, so... yeah, you can do way worse when it comes to being bus limited.

 

1400man

Member
I'd like to see some objective results. Can someone time, say, a 30 MB file copy with Quadra onboard Ethernet vs. NuBus 10/100? 

The white elephant we're all forgetting is that the classic Mac OS networking stack is not exactly a paragon of efficiency. Speculating over theoretical numbers is pointless. We need objective results. 

Edit: data point: my 030/40MHz Amiga can only push about 250 kb/s. I wouldn't be surprised if it were similar for most Quadras. I bet MacTCP/OT might be slower than MiamiDX, anyway. 

 
Last edited by a moderator:

1400man

Member
This is off the top of my head (read: too lazy to google it and look it up right now), but I believe that quoted "40MB/s" rate for Nubus 90 is for a streaming block transfer mode in which a starting address is sent, followed by some number of contiguous 32 bit words. (I believe PCI offers a similar transfer mode.) That's the only circumstance under which the multiplexing doesn't cut the effective transfer rate by at least half.
And I frankly wouldn't be surprised if most of those 10/100 cards were effectively behind a NuBus-ISA bridge, with no streaming burst transfer support. IIRC, your point about Quadras and NuBus 90 is correct. I think only the AV machines actually support it for CPU-card transfers, as opposed to card-card. 

 

Trash80toHP_Mini

NIGHT STALKER
Is there some kind of document showing specifically that NuBus slots or ports (akin to PCIe lanes on modern architectures, I suppose) must be deployed in groups of three? Is it part of like one of the hardware dev notes or Inside Macintosh?

On the Quadra 700 developer note (P.15 of the PDF) block diagram, Ethernet does not look like it's part of NuBus specifically. Ethernet is directly on the bus, NuBus slots are behind a NuBus controller.


So would I. Pretty sure I've read that that's how PCI bridges work, but I haven't graduated to the PCI Slots-n-Drivers level, don't expect to either, skimming the PDF is plenty for now/maybe ever? Haven't looked for the PCI info and the NuBus thing isn't something I've found in Apple's documentation. Interesting point, C!

SONIC and DAFB would be PseudoSlot implementations for Ethernet and Video respectively within the NuBus Slot Space memory map if they're anything like SE/30, IIci and IIsi. TattleTech will tell all.

 
Last edited by a moderator:

NJRoadfan

Well-known member
PCI is generally limited to 4 slots. There was some load limit imposed by Intel, but I don't have a spec or source handy indicating why (plenty of USENet arguments though). In theory, Apple could have shipped early PCI PowerMacs with 4 slots, but they didn't. The 6 slot machines used a PCI-to-PCI bridge.

 

Cory5412

Daring Pioneer of the Future
Staff member
but I haven't graduated to the PCI Slots-n-Drivers level, don't expect to either, skimming the PDF is plenty for now/maybe ever?


So, ultimately, you're guessing.

I think you can count something as being a pretend-NuBus device if it exists behind the NuBus controller in the architecture. However, Ethernet and Video are both directly on the main system bus, as with the PDS slot.

Worth noting here is TattleTech can basically print whatever it wants on screen. If it prints that the Ethernet and video are nubus devices, it will be flat out lying.

 
Last edited by a moderator:

Gorgonops

Moderator
Staff member
And I frankly wouldn't be surprised if most of those 10/100 cards were effectively behind a NuBus-ISA bridge, with no streaming burst transfer support. IIRC, your point about Quadras and NuBus 90 is correct. I think only the AV machines actually support it for CPU-card transfers, as opposed to card-card. 
I just did get around to looking it up, and apparently I was wrong thinking "Nubus 90" was associated with the block transfer mode; apparently that's present in original NuBus as well, Nubus 90 is the secondary 20mhz clock. In theory at least a block transfer with NuBus 90 can approach 70mb/s. (But mostly in theory)
 

You put the answer to the question implied in your first sentence into your second sentence: the Q900 has FIVE NuBus Slots, the sixth port being taken up by the onboard NIC.
According to a block diagram of the Q900 the Sonic ethernet card in the machine does *not* reside behind the YANCC Nubus controller or the associated bus transceiver ICs. And for good reason; NuBus requires what was at at the time significant overhead in terms of decoding hardware to implement. It'd be pretty pointless to make a "motherboard" NuBus device for a whole slew of reasons. Here's a thing to keep in mind: Apple's "Slot" nomenclature actually doesn't *strictly* have anything to do with "NuBus", as in the electrical specification. Apple's nomenclature for slot addressing is basically an intentional callback to how slots are implemented in the Apple II. In that machine the full address bus is present on each card slot, so in theory a card can be "mapped" anywhere inside the 64k address space of the machine. However, each slot is *also* associated with a unique "window" in memory; an access to a slot's assigned address space triggers a select line unique to that slot. In the Apple II's case that meant that add-on cards, if they were simple enough that they could pack all their ROM and I/O space into a 256 byte window, could dispense with a lot of decoding hardware. (You could map a simple I/O chip directly on the data and lower address lines on the slot connector and use the slot enable line as chip enable. That's why it's not uncommon to see Apple II cards that literally only have one chip on them, like a 6821 PIO.)

In the Mac II the hardware and firmware is set up in a roughly analogous manner; the address space of the CPU is chopped up in such a way that certain areas are "magically" associated with physical Nubus slot locations, and the physical Nubus controller is programmed to do the needful to route data appropriately when those locations are accessed *when there's actually a NuBus controller/physical slot present*. The same firmware and memory mapping conventions can and are also be used by motherboard and PDS devices that electrically have nothing to do with NuBus. "Designing Cards and Drivers for the Macintosh Family" strongly recommends that when designing 68030 PDS cards you take advantage of these "Psuedo-slots", because it allows the same firmware functions that allow auto-configuration of Nubus cards to control them as well.

Because the same firmware and memory mapping is used it's strictly speaking not really *possible* for a "Tattletech" program to tell if a device is on a physical "NuBus slot"  (IE, behind the NuBus controller) or not. All it can really tell you is if a device is enumerated in slots 1-6 in the firmware and if its devices are residing in the associated minor, standard, or superslot range that matches that slot number.  Presumably Tattletech does have some dictionary information present to say if the Macintosh it's running on has a Nubus slot in that area or not and could make the decision based on that, but maybe it doesn't make a distinction; if it's enumerated in the Slot Manager it's Nubus, regardless of what the wires really are.

(It's possible, I suppose, that the SONIC ethernet in the Quadra 900 *looks like* it's in the "missing" slot 6 of the machine, but I highly doubt it. The Q900/950 have PDS slots, I imagine it's expected to use the remaining assignment for its psuedo-slot. I don't think the motherboard devices in 68k Macs generally occupy "regular" slot numbers, since their drivers are in the main firmware, but there are probably exceptions; for instance, just off the top of my head I think the onboard video in an SE/30 is mapped as if it were a very brain-damaged NuBus video card. Again, though, could be wrong about that.)

Also, in case you're wondering, Trash, the official ANSI 1196 limit on the number of NuBus slots is 16. Apple only supported a maximum of six because that's the most that would fit into the memory mapping scheme they chose for the Mac II, which dictated some nasty tradeoffs for compatibility with 24-bit addressing mode. (Another interesting thing in the PDF linked above: the original Apple Nubus implementation didn't support block transfers even at 10mhz. Did they enable that in later revisions?)

 

Trash80toHP_Mini

NIGHT STALKER
Presumably Tattletech does have some dictionary information present to say if the Macintosh it's running on has a Nubus slot in that area or not and could make the decision based on that, but maybe it doesn't make a distinction; if it's enumerated in the Slot Manager it's Nubus, regardless of what the wires really are.
That's not exactly true. Slot Manager handles any card the same, whether NuBus, PDS or built into the MoBo in a PseudoSlot configuration.*** What matters is the location of the Declaration ROM on on any of the Mac's six supported Slot IDs/Interrupts. Slot Manager couldn't care less about what the interface might be. All are treated the same wherever the wires originate in the system, NuBus, PDS or directly on the processor's bus like Video in the SE/30 and IIsi.

TattleTech identifies all these distinctions. That's why I'm so interested in seeing TattleTech/SlotInfo reports on these systems with AAUI. There "should be" no difference in handling AAUI whether it resides on Apple's NIC on NuBus or as a PseudoSlot on the MoBo.

Slot Manager was developed specifically to support NuBus, SE PDS as the same animal as well as anything that should wander into the spec in the future.

*** We could be saying just about the same thing.

 
Last edited by a moderator:

Unknown_K

Well-known member
While I can easily stuff more then 6 Nubus cards into a single machine today, you would have to be pretty rich back in the day to try.

 

Trash80toHP_Mini

NIGHT STALKER
You'd need one of the NuBus Expansion Chassis setups to get more than Six Cards up and running back in the day or right now in retro-gear.

NuBus->NuBus expansion probably reached its peak in the Slot wasteland that was the x100 PPC generation for Digital Audio and Video workstations.

PCI->NuBus expansion like my setup probably peaked during the changeover from NuBus to PCI Architecture.

Those pro level NuBus cards for Audio and Video ofttimes cost more than Macs that housed them back in the day.

 

trag

Well-known member
@Gorgonops       Am I misremembering?  I thought some of the NuBus machines divided their memory map into sixteen 256MB segments, with the first segment being the host machine's hardware and memory space and the other fifteen available as slot address spaces.  In 24 bit mode, it was something like 1 MB per slot, which led me to wonder at one point how one uses a video card with more than 1 MB of VRAM in a Mac that's using 24 bit addressing.   Someone answered that one back at the time.

I haven't looked through TGTTMFH in a while though.

Regarding the passing discussion of PCI further above....

The PCI standard supports up to 256 PCI slots.   But there are caveats...

First, the electrical loading of the busses involved pretty much limits one to ten devices per PCI bus.    If the devices are PCI slots, rather than hard wired PCI devices, then the limit is closer to five devices, because slots can load the bus more -- less reliable, more resistive connections.

But, you can use a device called a PCI-PCI bridge to create a tree of PCI devices.   On the upstream side, a PCI-PCI bridge looks like a PCI device.  On the downstream side, the bridge provides another PCI bus.   Since each level of PCI bus is separate electrically, you get around the ten/five device loading limit with bridges.

A tree of bridges can support up to 256 PCI devices, in theory.   In practice, Apple's implementation (at least on early PCI Macs) is broken.   If you try to put a PCI bridge behind another PCI bridge, badness happens, that mostly looks like a freeze at the black screen booting up, but there are details.

Apple did not use PCI-PCI bridges to get more than 3 slots on the Macintosh.    Only Umax (AFAIK) did that in their S900 and J700 machines.     Apple's six slot PCI machines actually have two physically and logically separate PCI busses, with three slots each.    One could argue that they used a bridge to do this, because each PCI bus is created by a CPU bus to PCI bus bridge chip.   But there is no connection between the two PCI busses until one gets up to the CPU bus level.

The PCI bus with the upper three PCI slots, actually has four PCI devices on it, because the motherboard I/O acts like another PCI device to the machine.

In the Apple Network Server, which is not a Macintosh, but used the same chipset as the PM9500, there are 5 PCI devices on each PCI bus.    Six slots, two on-board PCI-SCSI chips, standard motherboard I/O (same as 9500) and a built-in video device.

Apple could have easily support four PCI slots on the PM7500/8500 and eight slots on the PM9500, but didn't.

 

trag

Well-known member
Don't you have a 700/900/610/650/800/950/840 or 6100/7100/8100/9150? You could do it.


Q840, 660AV, and PM6100/7100/8100 have the ethernet device as a CPU connected non-NuBus device.  Those machines alll use the CURIO (AM79C950) chip (serial ports, ethernet, 53C94/96 SCSI)  which was also used the x500/x600 series.   On the X500/X600 series, there's another (Apple) chip called Grand Central which looks like a PCI device on one side and lives on the PCI bus, and on the other side it interfaces to CURIO, CUDA, MESH (53C96 SCSI), floppy controller, etc.   The floppy controller might be in Grand Central at that point.  I don't remember.

So the machines to look at are the pre-AV Quadras.  

 

Trash80toHP_Mini

NIGHT STALKER
GREAT hardware discussion! In yet another lost thread I worked out the 4-bit setup for NuBus Slot ID assignment resistor tweaking:

x3o45Y.jpg.f5010176a556aec5e99cbe60d2607b59.jpg


 

Gorgonops

Moderator
Staff member
TattleTech identifies all these distinctions. That's why I'm so interested in seeing TattleTech/SlotInfo reports on these systems with AAUI. There "should be" no difference in handling AAUI whether it resides on Apple's NIC on NuBus or as a PseudoSlot on the MoBo.
I'm still just scratching my head here as to what you're arguing for. Are you interested if AAUI onboard ethernet shows up like it's "in a slot" (presumably the "missing" slot in a Quadra 900, or whatever?) in Tattletech? Because we know it's not wired that way. Sure, we agree the same software stack is used for most devices in a Mac regardless of how they're wired up... but whatever?
 

@Gorgonops       Am I misremembering?  I thought some of the NuBus machines divided their memory map into sixteen 256MB segments, with the first segment being the host machine's hardware and memory space and the other fifteen available as slot address spaces.


That is basically correct according to this, but it's a little more complicated then that. Because the slots *also* need to be able to be represented in a 24 bit address space along with RAM, ROM, and motherboard devices Apple elected to only *use* six of the sixteen available slices, $9 through $E (out of the total range $0-$F) for card slots. This is why a Mac II-family machine can only access 8MB of RAM in 24 bit addressing mode, the first 8 1MB "minor slots" are mapped to RAM; the ROM sits at the 8MB mark, and each NuBus slot gets 1MB, staring at the 9MB mark. (I/O is stuffed into the last page at the 15MB mark). There's just no place for any additional "standard" slots to go. In principle a PowerMac (or a 68k Mac that dispensed with 24 bit compatibility) could have more slots; presumably those NuBus expansion channels must do some magic to wedge their slots into otherwise unused standard/superslot space without providing a 24 bit window.(*)

(* AHA!)I just stumbled across this decent article from an old Byte magazine that does a good job talking about Mac II memory mapping, including a mention of how an expansion chassis can add slots with, indeed, the limitation that no 24 bit access is allowed. It looks like in 32 bit mode Apple actually assigned the first 4 "superslot" areas to RAM, for a theoretical maximum of 1GB, and used the next two "slots" for ROM and I/O. So in theory the most "superslots" you could have in a 32-bit Mac would be 9... but Apple never built a machine like that. Expansion chassis slots have to live inside the Superslot space for their host card, so they only get 16MB "regular slot" assignments. But in principle you could use all 16 IDs in that space, so, sure, why not, the most NuBus cards you could ever have in a Mac II-family machine would be 96, obtained by plugging six 16-slot expansion chassis in. But you wouldn't be able to use them under System 6.

 
Last edited by a moderator:

Trash80toHP_Mini

NIGHT STALKER
Just checked, Quadra 700 boots up, but there's no HDD in it. :-/

IIci has the ROM-inator II Universal System install with TattleTech so I ran with that and I found out a couple of interesting things:

With the Radius PrecisionColor 8-XJ in Slot $C and no sense lines detected on the board's DA-15 connector, its vampire video subsystem remains mute as does that of the IIsi.

But when I ran off vampire video, it appeared as:

Nubus/PDS# = $00

PseudoNubus Slot# = Built-in

Device Name = IIci Built-in Video

Under "Functional Resources"

Display_Video_Apple_RBV1

Device Hardware ID = 24

Device sResource ID = $86

.  .  .  the CPU also shows up as in the Slot $00 functional resource table as:
Mac CPU Device

sResource ID = $F0

So the RBV based IIsi video is implemented as a PseudoSlot at $E, which disappears when no sense encoding is detected, but the IIci does not appear to occupy a "usable" Slot Manager ID.

Too tired to mess with this any more tonight, but I'd put a shiny nickel on the Quadra 700 AAUI  subsystem being very similar to their fancy AAUI NuBus Card, but without the CPU and taking up a fixed PseudoSlot ID in place of that excised NuBus Slot  .  .  .

.  .  .  but no more than a nickel! :lol:

 

Trash80toHP_Mini

NIGHT STALKER
I'm still just scratching my head here as to what you're arguing for. Are you interested if AAUI onboard ethernet shows up like it's "in a slot" (presumably the "missing" slot in a Quadra 900, or whatever?) in Tattletech? Because we know it's not wired that way. Sure, we agree the same software stack is used for most devices in a Mac regardless of how they're wired up... but whatever?
I'm not arguing for or against anything, just curious about those missing NuBus slots!

As I posted above, that's exactly what I'm wondering. Is SONIC a subset of the APPLE ETHERNET NB CARD (c)1991 with its own equivalent of a DeclROM like IIsi Video (also SE/30 video) or will it show up as "Built-In" just a Functional Resource of the Mac at $00 like IIci Video?

There has to be some reasonable explanation for Apple having pulled a slot out of the Q700/900 and all the Quadras to follow?

BTW, thanks for that Apple link. The Byte article I'd found, linked to and read long ago in Project30. VERY cool stuff, gotta read it again! [:)]

 
Last edited by a moderator:
Top