General chat about NeXTBus backplanes....

NeXTComputers.org -> The Lounge

Title: General chat about NeXTBus backplanes....
Post by: MrPix on June 10, 2022, 02:58:48 PM
Hi all,

Let's kick back and have a chat about NeXT backplanes.

The Cube uses NeXTBus, a superset of NuBus, with an interesting layout. The Cube has slots 0, 2, 4 and 6 implemented. The OS can also handle the other 11 slots (0-14) with slot 15 reserved for.... stuffs! Their grand idea was you'd use a NeXT provided bus arbiter chip, the NBIC, to lighten the burden on expansion designers.

But there weren't any.

So now it's 30-some years later and as a retro machine the NeXT community is an underserved community. Not much new hardware. Not many options to update the old hardware. It's too tightly integrated to make that intellectually easy, and it's too well built to make that physically easy too.

I want to make some hardware, but, oof, the barrier to entry is quite high. No prototyping cards. No existing expansions to rework, improve or pivot off.

The place I need to start is with the backplane. I need to be able to protect the CPU card from any errors, stray voltages, coffee, etc. So I need to design my own backplane and PSU combo with good current limiting, excellent over-voltage protection and excellent noise characteristics. If I'm doing this for myself ANYWAY I should make the board more general in design.

So, looking at the low hanging fruit, here's where I am at currently:

A seven slot backplane, implementing in order, 12, 10, 8, 0, 2, 4, 6. Actively terminated, impedance controlled PCB. On-board reset and power-on logic, including a power switch so a keyboard isn't required. Hah! All fed from an ATX 24 pin power connector. Yes, you'll need a soundbox to use it, but the old monitors are all falling apart now anyways, so it is about time. And anyway, 4 amps of -12V is not something that just rolls off the tongue :P

This whole thing would be built into a right-sized card cage with super quiet fans, and a couple of drive bays.

For existing Cube owners, what does this bring? More cards at once! The ability to use multiple SCSI and floppy drives in a single enclosure - up to 6 or 7 SCSI/MO and 4 floppy drives! Beast! An on/off switch! LEDs that show which card is active!

If I am doing this, what do I need to know? What has experience told you is needed? What traps and pitfalls should be avoided?

I have the habit of sending prototype hardware to people who are super-participative in these kinds of discussions.
Title: Re: General chat about NeXTBus backplanes....
Post by: Rob Blessin Black Hole on June 10, 2022, 04:11:58 PM
Hello Mr. Pix:  Would it be possible to create a horizontal connector tree the plugs into the Cube Back plain so expansion cards would be stacked also removing the drive harness above the power supply may open up a way to reconfigure the cube to maximize space and moving the motherboard to the far right slot , motherboard would still stand vertical . If there is a dimension board far left side or keep the motherboard in the factory position with dimension board to the right of it from the back. The Cube Case is iconic and ditching it may not be popular , however a second Cube shell dedicated to Frankenstein expansion hardware would be very cool.  I like where you are going with all of this :)  http://www.nextcomputers.org/forums/index.php?topic=3360.msg18741#msg18741
Title: Re: General chat about NeXTBus backplanes....
Post by: stepleton on June 10, 2022, 04:22:05 PM
Quotewith slot 15 reserved for.... stuffs!

Like what kinds of stuffs?  :)

QuoteIf I am doing this, what do I need to know? What has experience told you is needed? What traps and pitfalls should be avoided?

One of those ten-years-shy-of-never projects for me is figuring out these experimental expansion boards I got that were used to turn the NeXT into a fancy terminal for telemedicine. Here's a Twitter thread that shows a board set. (https://mobile.twitter.com/tstepleton/status/1431961081908502532) As you can see, these things must have been preposterously expensive --- they have hardware video encoding circuitry plus a dedicated 68030 just to handle the ATM communications, among other things.

Naturally it would be useful to be able to probe this heap of electronics in order to understand its depths. A setup more amenable to that than the Cube would be handy indeed. The bus slots would have to have exactly the same spacing as they do now in order for the cards to work, though.

Now because I'm not even close to working on this project, you should definitely not make any design choices for my sake! In fact, I always thought that when I finally got around to working on this, what I would do is work up some slot extenders and just have the board set hanging outside of the Cube. By the way, why aren't extenders a solution for you? My guesses are: (a) sturdier (b) you want more slots (c) you want a more dependable power supply (d) it'll still be more convenient to probe this way (e) it will be fun.

QuoteI want to make some hardware

Can't really overstress how excited I am to see what you come up with!
Title: Re: General chat about NeXTBus backplanes....
Post by: stepleton on June 10, 2022, 04:37:02 PM
QuoteTheir grand idea was you'd use a NeXT provided bus arbiter chip, the NBIC, to lighten the burden on expansion designers.

But there weren't any.

Another NeXT third-party expansion board was the impressive dual-i860 card at the heart of the IRCAM Signal Processing Workstation (https://en.wikipedia.org/wiki/ISPW). This bit of kit is part of the origin story for MAX/MSP, and I guess I wouldn't pass one by if I saw it lying in the street :)
Title: Re: General chat about NeXTBus backplanes....
Post by: MrPix on June 11, 2022, 10:14:29 AM
Quote from: Rob Blessin Black Hole on June 10, 2022, 04:11:58 PMWould it be possible to create a horizontal connector tree the plugs into the Cube Back plain so expansion cards would be stacked also removing the drive harness above the power supply may open up a way to reconfigure the cube to maximize space and moving the motherboard to the far right slot, motherboard would still stand vertical.

I have thought about something like this. I had to rule it out quickly. The included PSU can happily run four cards. Maybe 5. The cooling at that point gets really iffy too. So really, if you have to go past four cards, you also need to replace the power supply and reconfigure the cooling system.

You continued:

Quote from: Rob Blessin Black Hole on June 10, 2022, 04:11:58 PMThe Cube Case is iconic and ditching it may not be popular , however a second Cube shell dedicated to Frankenstein expansion hardware would be very cool.  I like where you are going with all of this :)  http://www.nextcomputers.org/forums/index.php?topic=3360.msg18741#msg18741

This set me off on a train of thought that resulted in a useful idea. Thanks!

I could remove the power supply/drive bay chassis, and do a conversion to the backplane. The power supply and drives could go in a black aluminum 'pedestal' that goes under the Cube, like a stand. The stand would be the height of a standard ATX PSU and really make the Cube rise above everything else on the table - almost like a museum presentation stand.

I'm at the four year old level when it comes to drawings, but if anyone in the forum would like to draw some pics?
Title: Re: General chat about NeXTBus backplanes....
Post by: MrPix on June 11, 2022, 10:35:04 AM
QuoteI always thought that when I finally got around to working on this, what I would do is work up some slot extenders and just have the board set hanging outside of the Cube. By the way, why aren't extenders a solution for you? My guesses are: (a) sturdier (b) you want more slots (c) you want a more dependable power supply (d) it'll still be more convenient to probe this way (e) it will be fun.

There's a couple of reasons I don't want to go this direction.

The first is that the NeXT was one of the first machines to shift from the high drive current of TTL to the much lower drive current of CMOS. This had some benefits - it was much less prone to reflections and crosstalk, plus lower drive strength reduces heat a LOT when you're looking at so many communications lines. The catch is this doesn't lend itself to high fanout - which is how many inputs are being driven by an output. Some TTL parts have a fanout of 20 or 25, but the fanout of some of the parts used on the NeXTs is 7. If you have a four slot backplane and have a 4 slot expander plugged into one of those slots (gaining four but using one, so seven) that's a fanout of seven. Now, everyone HAS to design their cards VERY carefully. Painfully carefully. They need to use and manage chains of buffers, because the fanout includes not just the backplane, but the number of signal splits that happen within the cards too if they're unbuffered.

The second reason is that this is a 10" long line on a backplane. That is quite long for a 12.5MHz / 25 MHz speed. If you allow some of those signals to go to the middle of the PCB of an expansion card, that's another 6". If you have seven cards, all well designed, that gives you a total backplane transmission line length of 10" + (7 * 6") = 52". 4' 4". Over 1.3 meters.

I already find it really weird that they put cosmetics above signal integrity by splitting the cards two each side of a stack with the power supply and drives in it. They made up for it a little by ordering the slots so slot 0 was not at one end of the bus, but closer to the middle. Even then, they put it in the right middle slot instead of the left middle slot, which is a couple of cm less ideal.

If I'd had my way (I was designing expansions back then, but I wouldn't have known then to do what I now know to do) I think I would have made a 6 slot machine, all in a row. I'd have placed the PSU and HD at the bottom, and the floppies/MO (user accessible drives) at the top, centered.

But then, I am unusually fussy. In 1987-8 when they conceived of this machine, that wasn't current knowledge and best practice was to have a brute force, in your face backplane. Even though this is a hangover of the 60s and 70s.

The best way to show how much of a problem the above is in making high speed systems, look at the shape of the classic Cray supercomputer. That curved shell? That was entirely because they couldn't plug that much stuff into a long, flat backplane. So they simply made the backplane 70% shorter and curved it around. The hardware came out like a fan, but the backplane was short.

Mostly, I need that anything I made is 100% reversible. I can't bear the idea of someone damaging or permanently changing a rare machine just for a modern whim.

Cool boards!
Title: Re: General chat about NeXTBus backplanes....
Post by: MrPix on June 11, 2022, 10:56:27 AM
QuoteLike what kinds of stuffs?  :)

I'm answering this one separately because it's a far more in depth matter than people might realize.

So, the system has a memory addressable range from 00000000 to FFFFFFFF. That's 4 GB. It's divided into 16 domains. The first 15, from 0 to E, are each 256 MB blocks and each block is allocated to a slot.

Slot 0 is 00000000
Slot 1 is 10000000
Slot 2 is 20000000
...
Slot D is D0000000
Slot E is E0000000

This way, the top four bits is a slot select ID.

Ok, so, this is really neat and lets you have a card of 256MB of RAM. But wait. There's a catch. You'd have to eat into that 256MB for every card to have info available to the OS/CPU about what is actually on that card. It needs a way of saying "I am a CARDTYPE, version NNN, revision XXX, my IO is HERE, my registers are THERE...." Imagine as..... Imagine a multi IO card with 256 MB of RAM. Well, you'd need a few kilobytes of registers and maybe some DMA buffers and etc. How to divvy this up?

Well, wait. We have that top slot we set aside.

So let's take that top slot and give a bit of that to each card too. That makes 16MB each.

So in slot 15, which always begins Fnnnnnnn, we can divide that between the slots using the second hex digit.

Slot 0 extra is F0000000
Slot 1 extra is F1000000
Slot 2 extra is F2000000
...
Slot D extra is FD000000
Slot E extra is FE000000


So, let's take slot 2. The slot memory mapped at 20000000 to 2FFFFFFF. The slot has register and IO space mapped to F2000000 to F2FFFFFF. 256 MB in its slot memory, and 16MB in its register/IO space.

Now you can boot, and access known addresses attached to the card that are not in its default 256MB working range. It has a side block of an extra 16MB where it can do anything it wants. Additionally it has the config registers the OS expects to see at known, fixed offsets. You can have a continuous 256MB RAM card that can report to the system what it is outside of that 256MB block.

The system can start up, build a table of hardware in the machine by scanning a specific word in each slot's IO space, and if present it can see what it is and trigger the code needed to configure the OS and the card as needed.

How clever is that?!
Title: Re: General chat about NeXTBus backplanes....
Post by: stepleton on June 11, 2022, 02:49:19 PM
QuoteI could remove the power supply/drive bay chassis, and do a conversion to the backplane.

Won't this still keep the boards enclosed on five sides? This still seems like it might be difficult to probe.

Since you mentioned the Cray 1 and similarly-shaped machines: this is obviously the configuration we need. Make the backplane a cylinder and have the expansion cards fan out from it like this poster display rack (https://www.hubert.com/product/23346/22-x-28-Poster-Display-Rack-Floorstand-Silver). (Wouldn't work for my weird boards, unfortunately.)

QuoteI already find it really weird that they put cosmetics above signal integrity

I simply can't imagine a Steve Jobs passion project favouring aesthetics over practicality. Inconceivable!

QuoteEven then, they put it in the right middle slot instead of the left middle slot, which is a couple of cm less ideal.

I'm afraid your wonderfully detailed post just leaves me with questions :)
It's all because I'm sure I could learn a lot.

Wouldn't the spacing between all the cards be the same regardless of whether Slot 0 was left-middle instead of right-middle? It seems like the only thing that would be closer would be the power supply, and that's just power and maybe a little bit of very infrequent signalling for soft power-on?

I imagine that if Slot 0 had been left-middle, you'd have to wrap the drive connectors around the board in an odd way.

QuoteIn 1987-8 when they conceived of this machine, that wasn't current knowledge and best practice was to have a brute force, in your face backplane.

Can you say what it was you mean wasn't current knowledge here? Keeping buses short? Or was it that you ought to have something different than something that's not too far from a passive, row-o-connectors, you'll-need-support-logic-on-the-expansion-card backplane (which is how I see the NeXT's backplane --- not sure if that's what "brute force, in your face" means)?

QuoteThe system can start up, build a table of hardware in the machine by scanning a specific word in each slot's IO space, and if present it can see what it is and trigger the code needed to configure the OS and the card as needed.

How clever is that?!

Seems clever! Thanks for the detailed description. Knowing next to nothing about NeXT expansion card hardware, what I can't tell is: is this "stuffs" scheme your idea for new cards, or is this a description of what the NeXT does today?

QuoteSo, the system has a memory addressable range from 00000000 to FFFFFFFF. That's 4 GB. It's divided into 16 domains. The first 15, from 0 to E, are each 256 MB blocks and each block is allocated to a slot.

Slot 0 is 00000000

I'm inferring from this that the CPU card is best off in Slot 0, and if it sits in any other slot (as it can do when you do stunts like running more than one CPU card in the same Cube), there has to be some kind of address translation that allows the CPU card to think that it's at memory location $00000000?

Please don't feel obliged to answer all of my questions. I'd offer to repay with a snazzy drawing, but I'm afraid that my skills here are like yours.
Title: Re: General chat about NeXTBus backplanes....
Post by: MrPix on June 11, 2022, 05:24:44 PM
QuoteWon't this still keep the boards enclosed on five sides? This still seems like it might be difficult to probe.

A flex PCB that comes out the drive door can attach to the PCB through a flex connector on the back. You know, if I was insistent on doing that inside the case instead of outside it. ;) Even outside it, one of my favorite things is a male to female DIN adaptor that has 2" of flex so I can rest boards at any angle on the bench. ;)

QuoteSince you mentioned the Cray 1 and similarly-shaped machines: this is obviously the configuration we need.

Nuh huh! It is nice to have such a short bus. It's just that the enclosure has to be at least 3x the size of be boards for it to work. Are YOU willing to give up 3 x 3 feet of desk?

I hereby offer you the grand solution to all problems in all places at all times throughout history heretofore experienced or.... not yet observed! Well, that might be overstating it a BIT, but it is cleaner.

A backplane that has alternating connectors on each side. It would allow twice as many cards in the same length of backplane. It would also only double the size of the machine in one dimension. So the Cray-style machine becomes 3x3x1, this would be 2x1x1 and the original would be 1x1x1.

QuoteWouldn't the spacing between all the cards be the same regardless of whether Slot 0 was left-middle instead of right-middle? It seems like the only thing that would be closer would be the power supply, and that's just power and maybe a little bit of very infrequent signalling for soft power-on?

No :P

The slots are positioned physically around four volumes representing the volume of the card. On the Cube they standardized on having the component side face left and the solder side face right. This means the DIN connector isn't in the center of that volume, but attached on the component side of the board to the right of the volume.

If the CPU board were the first slot to the left instead of the right of the drive bays, the connector would be about 1" (2.5 cm) more ideally positioned relative to the present.

The one upside of the current layout is that the first board is always present, and the second board likely goes in slot 2, to slot 0's right. This is the position that is always most thermally favorable to the CPU card.

QuoteI imagine that if Slot 0 had been left-middle, you'd have to wrap the drive connectors around the board in an odd way.

"Personally" I would have used a second DIN connector above the NeXTBus connector to carry the floppy, SCSI and status signals out. I mean, how are you supposed to know if the NeXT is o.... oh, never mind. Audio cues. And drive accesses are indicated by the whole table shaking! :P

QuoteCan you say what it was you mean wasn't current knowledge here? Keeping buses short? Or was it that you ought to have something different than something that's not too far from a passive, row-o-connectors, you'll-need-support-logic-on-the-expansion-card backplane (which is how I see the NeXT's backplane --- not sure if that's what "brute force, in your face" means)?

We first started seeing the issues that plagued us through the early to mid-90s [1] in the late 70s with S100 bus systems. As speeds go up and voltages go down, termination becomes more important. Let me explain in two parts.

A track that doesn't have matched impedance is not ideal. This means that the track's electrical impedance isn't matched to the signal's designed impedance within the circuit. A good example of this was watching TV with rabbit ears. A well matched antenna gives a crisp images with no ghosting. 100% of the signal goes from the component into the line, travels along the line and 100% goes into the receiving component with no losses, no reflections, and everything is hunky dory! But if you use a sucky, poorly matched antenna? Some of the signal reflects, like waves hitting a sea wall and reflecting. They'll bounce around two, three, four times, and combine with the original signal as constructive and destructive interference. On the old TVs, this looked like ghosting. That visual representation you have in your head happens more and more the faster the signal, and the faster the transitions.

The NeXTBus carries so-called 12.5 MHz. I say so called because that is just a measure of the number of times an event can happen in a second. The bus can be turned on and off 12,500,000 times second. Sounds like a lot, right? Really it is a number of interest to users and programmers. From the EE's perspective, while it matters, it's not the only thing we consider as the frequency of the bus.

For us, the transition time from a 0 to a 1 and back is critical. We call it rise time. As far as signal integrity is concerned, the frequency of a backplane is just all the rises and falls that can be done in a second without any of the hold times at the top and bottom of the clock. So a backplane that is being used at a nominal 12.5 MHz may actually be experiencing transitions that happen at five or six times that rate or more. Experience tells me that on a 12.5 MHz bus of this era, we typically have to design for 100 - 125 MHz. On the CPU bus on the board, we would design a 33 MHz bus as if it were a 300 or 350 MHz bus.

Because that's real world.

QuoteSeems clever! Thanks for the detailed description. Knowing next to nothing about NeXT expansion card hardware, what I can't tell is: is this "stuffs" scheme your idea for new cards, or is this a description of what the NeXT does today?

This is the official NeXTBus spec, and is mostly clever. I have only thought of one improvement that could have been made in all the years since that would have made sense from inception.

QuoteI'm inferring from this that the CPU card is best off in Slot 0, and if it sits in any other slot (as it can do when you do stunts like running more than one CPU card in the same Cube), there has to be some kind of address translation that allows the CPU card to think that it's at memory location $00000000?

The 'master CPU' has to be in slot 0.

Although original NeXT CPU boards didn't allow other CPU masters (aka multiple CPUs) they did allow other cards to master the bus and control transfers. For example, NeXTStep depends heavily on DMA. In DMA the device temporarily bus masters and completes the transfer without the involvement of the CPU. If that bus master is on an external card, the CPU better be in slot 0 where it is expected or mayhem ensues.



[1] To be fair, the military and aerospace arenas had been dealing with this since the 60s, joining any radio amateur who has been learning to mitigate these issues since the 30s!
Title: Re: General chat about NeXTBus backplanes....
Post by: MrPix on June 11, 2022, 06:22:02 PM
The things that really bakes my noodle are....

If slot F (15) is reserved as 16MB areas for side band communications about cards, that means there's a 16 MB section in slot F reserved for slot F too. The space from FF000000 to FFFFFFFF hasn't been referenced in any of the materials I've read yet.

Next, if the CPU tries to manually address space on a card that isn't installed (or there isn't even an NBIC in the system) what happens? Can it access that on the CPU board as addressable space? I know it'll go out to the NeXTBus on the Cube, but on the NeXTstation there isn't an implemented NeXTBus.

Since slots are hard wired with position IDs, and a card can respond to accesses targeted to the even slot above it, that means the maximum possible space allocated to any single card was 512MB. Is this the limit of bus overlap? Or can two cards with their own busses overlap more of that into jointly addressable territory?

Finally, compared to the CPU bus, the NeXTBus is SLOOOOW. Did NeXT have plans to increase the clock rate of NeXTBus in future standards, or was it a dead end technology from the very beginning? It does seem like a good basis for a simplified future retro 680X0 hobbyist bus. Just eliminate the need for the NBIC and place a multi-master bus request system in there and it could scale all the way up.

Thoughts?


Title: Re: General chat about NeXTBus backplanes....
Post by: stepleton on June 12, 2022, 07:32:31 PM
QuoteThe slots are positioned physically around four volumes representing the volume of the card. On the Cube they standardized on having the component side face left and the solder side face right. This means the DIN connector isn't in the center of that volume, but attached on the component side of the board to the right of the volume.

I understood that part. I still don't understand what the difference is here from the perspective of the bus. Feel free to ignore if I'm being obtuse, but I will try to explain.

Currently, the backplane is shaped like this if I understand correctly:

.6..4pppp.0..2
where . is empty space, a number is one of the slots, and p is the horizontally-arranged power connector. If the backplane were full of cards, solder-side to the right, we'd see

CC.CCppppCC.CC
where CC is one of the cards. Now let's enter the mirrorverse and shuffle the slot locations:

.2..0pppp.4..6

The backplane slots are only .. spaces apart at a minimum and ..... at a maximum. The distance between cards hasn't changed. The only improvement is that the power slot is closer to card 0. I don't think this is the improvement that's stirring your heart. I feel like I'm missing something?

QuoteI would have used a second DIN connector above the NeXTBus connector to carry the floppy, SCSI and status signals out

No disagreement from me, but you also need the MO drive header, so that's a connector with 50 SCSI pins plus 26-ish floppy pins plus 20-ish MO drive pins: 50+26+20 = 96 = exact same as a NuBus connector, checks out... if I remember the other pin counts right :)

QuoteWe first started seeing the issues that plagued us through the early to mid-90s

Thanks for the explanations of impedance matching, termination, and rise+fall times. I am sorry to plod along like this, but could you take me the one final step and say the specific ways that NeXTbus was deficient (or marginal) with regard to these issues?

Perhaps another way to ask the question is this: after an unsettled sleep you find yourself awaking as a NeXT hardware designer in 1986, knowing everything you know now but constrained by the technology that could reasonably be introduced into the first NeXT computers in early Q4 1988. What would you have done differently? (Besides the extra DIN connectors for storage I/O, that is.)

QuoteI have only thought of one improvement that could have been made in all the years since that would have made sense from inception.

Go on, then...  :)
Title: Re: General chat about NeXTBus backplanes....
Post by: Rob Blessin Black Hole on June 12, 2022, 08:39:17 PM
Hello Mr. Pix: You may enjoy taking a look at some of the expansion cards from the day made for NeXT in the NeXT catalogs you may now have. Cool stuff  http://www.nextcomputers.org/NeXTfiles/Docs/Rare_NeXT_Hardware/ArielQuintprocessor/   https://quod.lib.umich.edu/i/icmc/bbp2372.1993.116/1   
Title: Re: General chat about NeXTBus backplanes....
Post by: MrPix on June 13, 2022, 10:38:36 AM
The Quint processor is sort of interesting. My DPU idea is essentially this, but with 68K CPUs running as fast as possible. The hardware on them is fairly simple. It's the software that makes it all into something useful.

Go to top  Forum index