0

My desktop computer is no longer manufactured and no longer supported since more than 18 years ago. It was a very expensive top of the line business computer back in the day. I like it and wish to preserve it, but also continue to use it. It takes a single processor on the main board (with up to 4 GB of memory). However, what I wanted to know is if anyone has any idea of how I can add additional slave processors (and possibly RAM) to this system through the mainboard's PCI card slots, and thereby up the processing power of this machine? Also, is there a way to overclock the processor or otherwise to further up it's performance? I am also factoring in the tons of old computers going into land fills in this question so that if this problem can be solved economically, then many old computers might be able to be retrofitted, preserved, and to be usable again with modern operating systems and softwares.

16
  • 2
    PCs cannot do this. Are you trying to design your own completely new computer system?
    – user253751
    Feb 2 at 9:13
  • 2
    It's not exactly a "retrofit" if you connect it to a brand new computer, I think. That's taking a new computer and putting it in an old computer case.
    – user253751
    Feb 2 at 9:47
  • 2
    There are SBC PCs on expansion boards, using PCI mostly for their power supply, but they are quite a bit more expensive than equivalent PCs (even SFF PCs). Apart from the space savings I don’t see any advantage, and it might not even work anyway — any decently powerful PC on an expansion card will probably require more cooling than your SFF PC can provide. Feb 2 at 9:51
  • 1
    What is it you really want to achieve? Your proposal sounds like a very costly way to improve performance of a very old machine, which can be done more cheaply by just replacing the entire system (or possibly just the motherboard, CPU and memory) with an up-to-date one. The HP Compaq DC5100 SFF is an unremarkable desktop PC otherwise, or is there a reason you can't replace it? This has all the hallmarks of an XY problem.
    – StarCat
    Feb 2 at 12:47
  • 1
    @Mr.Lopez while that’s a laudable goal, expanding your question to attempt to solve all the problems caused by the processing of obsolete hardware doesn’t make it any more on-topic. “Preserving” as in “expanding my old computer so it’s a modern computer” isn’t really “preserving” as a retrocomputing topic IMO. And the economic side of things would be better addressed in other venues. Feb 4 at 8:38
5

CompuPro did this in the olden days, with 8-bit and 16-bit CPU slave cards with a 16-bit or 32-bit main CPU. But there were a few differences from what you are suggesting:

  • Each CPU had its own RAM. That was an absolute must. If two CPUs have to share RAM (except to a limited degree - e.g., DMA for disk access), they will slow each other down. RAM is already the slow point in many systems, and keep in mind that if other CPUs are using the main CPU's RAM then you also mess up the caching that is key to modern CPUs being able to run at multi-GHz speeds.
  • Multi-user systems. Actually, we do this today, in a sense, by using multi-core CPUs with multiple users over a network. But in the olden days this was typically multiple serial terminals. A typical system might have one master CPU, multiple slave CPUs, a disk controller card, a general I/O card and a multiple serial-port card. Each terminal connected to one serial port and the operating system would provide a console interface and run programs on either the main CPU or a slave CPU as appropriate. Today's systems have most connections dedicated, in which case one user = one CPU, and if that one user needs a faster CPU then they upgrade to a newer machine. The exceptions (sometimes in offices, but especially in data centers) are networked machines where if you need more power you don't upgrade the tiny little box, you throw more boxes and/or bigger boxes at the problem.

The other big difference is motherboard vs. passive backplane. The S-100 was the classic passive backplane system. It was essentially a spur-of-the-moment design for the Altair, but it lasted quite a while. 8080 2 MHz not fast enough, replace with a Z80 4 MHz. But possibly upgrade your RAM at the same time. Need more ports, swap the I/O card. Need more RAM on an 8086, add another card or trade in the 256K card for 1M card. But that had limits. Looking to CompuPro again, when they came out with an 80386 CPU, they couldn't get the CPU-RAM interface fast enough while remaining anywhere close to S-100 specs. So instead of making the existing cards useless, they came up with a second bus connecting only the 80386 CPU and RAM cards but continued using the existing bus for slave CPUs and I/O.

One more factor is that the latest and greatest (and fastest) CPU chips are a large part of the cost of a new system. That was not always the case, but it is today. So unless you have a high-end laptop (in which case your options are limited anyway), almost always the most cost-effective thing to do is to get an entirely new computer with a super-fast CPU & RAM and reuse your monitor(s) and other external peripherals and, if you already have large/fast SSDs, your storage.

7

how I can add additional slave processors (and possibly RAM) to this system through the mainboard's PCI card slots

While DMA works through PCI, this is not practical to sustain to have additional CPUs on the card access main memory.

So basically you'd need a complete second PC with RAM and one or more CPUs on the card. The best you can hope for is to use the PCI memory window either for shared memory with a small part of the on-card RAM, or as a sort of I/O control of the card.

That means it's not much different from having two completely separate PCs connected via LAN, say.

On top of that, you'd have to develop some PCI slave controller for that purpose, you'd have to develop and manufacture the whole card. But the card's electronics will be dense enough that you can not easily do this as a hobbyist, and the numbers produced are too low to make this less than horribly expensive.

So no, it's not a practical way to "improve processing power" of your legacy system.

Though designs like this existed in the past for older platforms (both with and without shared main memory), it just doesn't make sense for PCI-equipped PC.

5
  • Can you go into some more detail as to why DMA over PCI would not be enough to let another CPU access the main RAM? Because I think that’s the most interesting part. Feb 2 at 13:27
  • @user3840170 too slow, possibly?
    – user253751
    Feb 2 at 13:39
  • 1
    Right, I forgot they had to invent AGP so that a graphics card could access memory with reasonable performance. I guess a whole other CPU would face something similar. Feb 2 at 13:41
  • And the two CPUs would have to coordinate memory caches somehow. I don’t think that’s trivial to do over PCI. Feb 2 at 13:46
  • 1
    @user3840170: That's already handled. It's routine for things like high-end disc controllers to use bus-mastering to transfer data to and from main memory and the CPU will "peek" at transactions to assure that if it has that data dirty in the cache, it'll be flushed before the disc controller reads it. But yes, without direct CPU-CPU connections, it gets pretty slow. Feb 3 at 16:57

Not the answer you're looking for? Browse other questions tagged or ask your own question.