VOGONS


386 with 4GB?

Topic actions

Reply 20 of 57, by TrashPanda

User metadata
Rank l33t
Rank
l33t
Azarien wrote on 2022-12-22, 07:56:
It's in the design of the CPU and its 32-bit instruction set. […]
Show full quote
Warlord wrote on 2022-12-22, 04:03:

The 4gb thing isn't real only exists on a piece of paper somwhere.

It's in the design of the CPU and its 32-bit instruction set.

Theoretically it should be possible to build a 386 mainboard with current tech that would accept 4 GB RAM.

Just like current 64-bit CPUs support some astronomical amount of RAM, but a particular mainboard may be limited to 32 GB for example.

Theory .. perhaps but you are forgetting that the 386 doesn't have a memory controller, so it'll always be limited by the chipset memory controller and cache, its a two part puzzle and you'll need both parts to make it work . .even with today's tech.

Reply 21 of 57, by Cyberdyne

User metadata
Rank Oldbie
Rank
Oldbie

Why the hell did 386 connect so many address lines? Motorola 68k CPUs were all internally 32bit but did not connect all address lines.

I am aroused about any X86 motherboard that has full functional ISA slot. I think i have problem. Not really into that original (Turbo) XT,286,386 and CGA/EGA stuff. So just a DOS nut.
PS. If I upload RAR, it is a 16-bit DOS RAR Version 2.50.

Reply 23 of 57, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Cyberdyne wrote on 2022-12-22, 10:07:

Why the hell did 386 connect so many address lines? Motorola 68k CPUs were all internally 32bit but did not connect all address lines.

The Motorola 68000 and 68010 were often described as sixteen/thirty-two Bit chips.
16-Bit data bus, 24-Bit addess bus. Like an 80286. The ALU was 32-Bit, however, unlike the 80286 .

The 80386SX and 80386EX were castrated in a similar fashion, they worked with a 16-Bit data bus and an 24-Bit and 26-Bit addess bus (external), respectively. Their ALU was 32-Bit, however. The internal address bus, too.

The 80386 was considered to be a mainframe on a chip.
Made by the same engineers, it essentially was meant to fix all the "flaws" of the 80286.

The 32-Bit physical address space can be used for all kind of things, not just working memory.
It can be used for memory-mapped I/O, too.

The Weitek Abacus series of math co-processors used that feature, by the way.
They interfaced via memory locations, rather than I/O ports.
That's why it was so fast, also. No bottleneck.
EMM386 has a switch for Weitek support.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 24 of 57, by douglar

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote on 2022-12-22, 04:06:

With these slots, it would be possible to bypass the chipset's memory controller and install memory directly on the front side bus.
In essence, it's the same as using big ISA memory boards in an 80286 system.
Edit: Samples picture attached.

In that picture, it looks like that memory expansion slot is still connected to the opti chipset.

Doesn't look like it is a local bus slot directly to the CPU, which is on the other side of the board.

Just looks like a proprietary extension to the existing memory bus to hold extra 30 pin simm modules

Probably lets the board go up to 64MB

Edit: Just a reminder, this was still 15 years before memory controllers started moving into the CPU. You didn't attach memory directly to the processor in 1990.

Last edited by douglar on 2022-12-22, 17:34. Edited 1 time in total.

Reply 25 of 57, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote on 2022-12-22, 14:19:

The 32-Bit physical address space can be used for all kind of things, not just working memory.
It can be used for memory-mapped I/O, too.

Which was the primary use of the address space and the “big deal” coming with the 386 era and became one of the main features that made Windows 3.x become more prolific .

IBM had POS networks that used the servers address space in this way.

Data center systems would map online storage as virtual memory

Cyberdyne wrote on 2022-12-22, 10:07:

Why the hell did 386 connect so many address lines? Motorola 68k CPUs were all internally 32bit but did not connect all address lines.

Future proof?

Many 386dx systems did not use more than 24 of the 32 address pins

As an example…
The original Compaq desk pro 386 only had 32bits to memory but didn’t connect all the address lines to anything.

It was basically a 286 motherboard with a 32bit bank of memory

Reply 26 of 57, by the3dfxdude

User metadata
Rank Member
Rank
Member
Cyberdyne wrote on 2022-12-22, 10:07:

Why the hell did 386 connect so many address lines? Motorola 68k CPUs were all internally 32bit but did not connect all address lines.

A 386DX provides 32 physical address lines. It's up to the board manufactures to connect them to something. Not everything is about accessing RAM. I don't know the exact reasons for needing to move from 24bit to 32bit in the early 1980s, but 16M addressable is not actually that much, and even then it's unlikely you'd be able to use the full 16M of RAM in any case due to other devices in a PC. So sticking things even higher in address space and also being able to match or exceed 16M probably was needed in high end computing already, to drop the cost over paying for a mainframe. BTW, the 68020 provides 32 physical address lines (1984), so the 386DX was kind of a response to that.

So the 16M barrier was quite low even for the 80s, but 4G, at least for me I did not start moving to 64bit OS until 2017 at home, and at work, exceeding 64G happened around the same time, even though we were long using 64bit OS, we could still run on 32bit if we wanted until then. 32bit architecture did have a long life, so I am glad for the forward thinking and Compaq daring to put out a machine to beat IBM in using it.

Reply 27 of 57, by douglar

User metadata
Rank Oldbie
Rank
Oldbie

I find it hard to believe there was ever a 386 system used more than 256MB of ram out side of a design laboratory.

4 reasons:

  • Diminishing returns on a slow CPU. The processor would not have been able to run tasks that required that much data.
  • Chipset support; memory controllers were still in the chipset back then, not in the CPU. Where's the chipset with the memory controller that can handle that?
  • The OS. Even in the year 2000, it was hard to make a 32bit OS use more than 2GB of ram because of the way things were mapped out, even after 48 bit PAE was invented.
  • And partly because of finances. People who were throwing that much money at a computer system back then were looking at mainframes or midrange systems like AS/400
  • Stability. Don't forget that most x86 OS's were real mode based OSs' back in 1990. They were closer to single task machine control systems than a real multi tasking OS that needed lots of memory.

Reply 28 of 57, by the3dfxdude

User metadata
Rank Member
Rank
Member
douglar wrote on 2022-12-22, 17:33:
I find it hard to believe there was ever a 386 system used more than 256MB of ram out side of a design laboratory. […]
Show full quote

I find it hard to believe there was ever a 386 system used more than 256MB of ram out side of a design laboratory.

4 reasons:

  • Diminishing returns on a slow CPU. The processor would not have been able to run tasks that required that much data.
  • Chipset support; memory controllers were still in the chipset back then, not in the CPU. Where's the chipset with the memory controller that can handle that?
  • The OS. Even in the year 2000, it was hard to make a 32bit OS use more than 2GB of ram because of the way things were mapped out, even after 48 bit PAE was invented.
  • And partly because of finances. People who were throwing that much money at a computer system back then were looking at mainframes or midrange systems like AS/400
  • Stability. Don't forget that most x86 OS's were real mode based OSs' back in 1990. They were closer to single task machine control systems than a real multi tasking OS that needed lots of memory.

Yes, given design limitations at the time, the point then was probably more to improve application support and remove the immediate barrier of 16M. I would disagree that the chip being slow would have been a factor deciding against using more memory. Today I've run applications that produce TB's of data both in RAM and disk, and it can take a few days even with all the cores, but since I have more RAM today, it's worth the wait since it is at least working. Granted this is better than the mainframe days, because we are talking about probably relatively cheap Xeons doing this work for much less than it would have cost back then to get that kind of exclusive access, but still not enough for us if we want to finish our work in a single day. In the 80s, to have a 386 even with a fraction of what a mainframe could do then at much less cost would have been appealing to someone, even if the work load took days.

I think what would be interesting is finding the milestones in both x86 consumer and x86 server design of the 32bit era in terms of realized capacity. Someone would know. But, yes, early 386DX/SX was certainly used as a finally fixed 286 replacement in its initial application. For me I don't know who was able to push its capabilities more fully. I was not at that level of know, definitely too young to see it.

Reply 29 of 57, by karakarga

User metadata
Rank Newbie
Rank
Newbie

There are no compatible 4GB rams for 386 systems. They can go up to 32 or 64 MB unless being server mainboards. Some 486 server systems like Compaq Proliant 4/66 can go up to 136MB with onboard 8MB memory and by using 4 pieces of 32MB modules. 386 processors are not well performers to cope with 4GB system memory. Technically speaking todays system can go up to Petabytes of ram, but again not possible to mount. Do not forget, those old and new systems are only build for home use!

Reply 30 of 57, by Sphere478

User metadata
Rank l33t++
Rank
l33t++

30 pin simms only came in up to 16mb.

72 pin came in up to 128mb (without Proprietary pinout)

I don’t think many 386 boards came with 72 pin simms.

So even fitting 4gb in a normal board is basically out of the question. And because of this board makers almost certainly didn’t route the address lines for it. Even if you tried simm stackers the address lines are likely fully spoken for on each slot by 16/128mb is installed. So simm stackers are no help

Servers…. Maybe?

Custom mobo…. Maybe?

But did any chipsets support this? I kinda doubt it… if any did it would probably be server solutions.

This was back in a time when 128mb was bonkers.. let alone 4gb

Sphere's PCB projects.
-
Sphere’s socket 5/7 cpu collection.
-
SUCCESSFUL K6-2+ to K6-3+ Full Cache Enable Mod
-
Tyan S1564S to S1564D single to dual processor conversion (also s1563 and s1562)

Reply 31 of 57, by Jo22

User metadata
Rank l33t++
Rank
l33t++

But these limits aren't the fault of the 80386, I suppose.

In the early 80286 days, chipsets weren't even used yet.
The mainboard consisted of discreet components.

Some systems had the memory directly on the AT-bus.
The memory expansion boards for the IBM PC/AT, for example.

Or Ast Rampage 286, Intel Above Board.
They could do both EMS and XMS, via AT-Bus.

I suppose this was similar true for the time when the 80386 was introduced.

Both were general purposes processors, not bound to the IBM PC platform.

They were used in all sorts of applications.

Edit: Ofc, ISA has a 16MB limit due the 24-Bit address bus of the 80286 (ISA = 286 front side bus on a slot, plus IRQ/DMA controllers).

Attachments

  • ibm_emea_5.jpg
    Filename
    ibm_emea_5.jpg
    File size
    175.27 KiB
    Views
    1011 views
    File comment
    https://www.minuszerodegrees.net/5170/cards/5170_cards.htm
    File license
    Fair use/fair dealing exception
  • 5170_memory_board_512K_2048K_s.jpg
    Filename
    5170_memory_board_512K_2048K_s.jpg
    File size
    136.28 KiB
    Views
    1011 views
    File comment
    https://www.minuszerodegrees.net/5170/cards/5170_cards.htm
    File license
    Fair use/fair dealing exception
  • 5170_memory_board_512K_s.jpg
    Filename
    5170_memory_board_512K_s.jpg
    File size
    160.37 KiB
    Views
    1011 views
    File comment
    https://www.minuszerodegrees.net/5170/cards/5170_cards.htm
    File license
    Fair use/fair dealing exception

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 32 of 57, by douglar

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote on 2022-12-23, 07:12:

But these limits aren't the fault of the 80386, I suppose.

In the early 80286 days, chipsets weren't even used yet.
The mainboard consisted of discreet components.

Even on a 286, there was logic between the CPU and the memory, whether you want to call it a chipset or discreet components, they did the same job.

Something had to send the refresh signals to the dram, even in the simple days before there was tiers of cached memory and I don't think the CPU ever did that in the PC world until much later.

286.png
Filename
286.png
File size
162.27 KiB
Views
992 views
File license
Fair use/fair dealing exception

Reply 33 of 57, by Jo22

User metadata
Rank l33t++
Rank
l33t++
douglar wrote on 2022-12-23, 14:06:

Even on a 286, there was logic between the CPU and the memory, whether you want to call it a chipset or discreet components, they did the same job.

Yes.. Why are we arguing ? 😅

douglar wrote on 2022-12-23, 14:06:

Something had to send the refresh signals to the dram, even in the simple days before there was tiers of cached memory and I don't think the CPU ever did that in the PC world until much later.

Yes, Dynamic RAM (DRAM) needs a refresh. But a memory board can use Static RAM (SRAM), Pseudo-Static RAM (PSRAM) or have it's own refreshing circuit.

Last time I checked, one of those old memory boards worked just fine in a Pentium mainboard.
I think it was the AST Rampage 286, which can do both EMS and XMS.
https://retrocmp.de/hardware/rampage-286/rampage286.htm

IMHO, I think there's no need to use the motherboard's refreshing circuit for all the memory.
- ATs were nolonger stuck with the XT motherboard design and the old way of refeshing DRAM.
That's why DMA #0 became usable, for example. It's nolonger fulfilling it's original purpose.
https://www.oreilly.com/library/view/pc-hardw … ch01s03s02.html

I mean, you can't properly use the same refresh signal for a mixed-memory configuration, anyway.
Some memory is 60ns, some is 100ns, some 120ns.. If the AT mainboard uses 80ns SIMMs and the external memory board has 150ns chips..
Wait states would be needed, at least, if the memory board was using the motherboard's quicker refresh.

Speaking of.. As far as I know, AMDs later 80386 CPUs (am386DX40) had a static design.
Which meant, they could run as slow as needed until they halted.
There was no DRAM inside anymore, which could loose charge if the external clock was too slow.
https://en.wikichip.org/wiki/amd/am386

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 34 of 57, by pentiumspeed

User metadata
Rank l33t
Rank
l33t

One time I had a 386 with no cache stuffed all the spare ram from serveral Everex machines to make 16MB and 800MB ESDI. Does not go any faster on windows. Was a experiment.

Cheers,

Great Northern aka Canada.

Reply 35 of 57, by douglar

User metadata
Rank Oldbie
Rank
Oldbie

https://en.wikipedia.org/wiki/Compaq_SystemPro

The SystemPro from Compaq, released in November 1989, was arguably the first true PC based server.
...
At its initial release in November 1989, the SystemPro supported up to two 33 MHz 386 processors
...
The system used a state-of-the-art shared memory bus design, called Tri-Flex Architecture, to facilitate its multiprocessing capabilities. The original SystemPro shipped with 4MB 80ns DRAM, expandable up to 256MB using proprietary memory modules.
...
At the time of launch, the "low-end" SystemPro (a single 33-MHz 386 CPU, 4 MB RAM, and two 120-MB hard drives) listed for $15,999 (USD); The same machine with 840 MB of storage (four 210-MB hard drives) listed for $25,999 (USD). A second 386 processor card cost $3,500 (USD), and an additional 32 MB of RAM was $21,999 (USD).

Reply 36 of 57, by the3dfxdude

User metadata
Rank Member
Rank
Member

The information on DRAM IC availability is kind of sporatic, but this shows that TI had 4Mbit modules in 1986, which would have made it possible to have 32MB in 8 simm modules, similar to this expansion module for the SystemPro XL shown on the next link, if we can imagine something-like 30pin simms in a proprietary expansion board. (the XL is a much later 486 based system, but the original 386 version probably would have used some kind of local bus expansion card too)
https://en.wikipedia.org/wiki/Random-access_memory#DRAM
https://forum.vcfed.org/index.php?threads/com … 36/#post-938143

Even larger RAM IC might have been possible, but given the price, probably never happened in the days of the 386. 4Mbit would have been available enough to make sense.

But going along with "why" a 386 would be used even if it could not use all 4GB in physical RAM, well, by 1986 the 16MB limit would need to be broken if higher density RAM was being planned to be productized, since it was such a low limit. The CPU had to come first, and then the memory had to catch up for a couple decades.

Reply 37 of 57, by douglar

User metadata
Rank Oldbie
Rank
Oldbie

Looking at the manual, if you had the 116569-001 memory cards, you could put up to 96MB on a card using 32MB modules, and you could have two cards.

https://theretroweb.com/motherboard/manual/30724.pdf

Maybe they came out with a higher capacity memory cards later on. This looks like they have a Kingston memory board:

s-l1600.jpg
Filename
s-l1600.jpg
File size
215.66 KiB
Views
817 views
File license
Fair use/fair dealing exception

Here's a pretty cool build:

386_Junkie’s duo core 386; The modified Systempro!

Reply 38 of 57, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

I'd like to point out that:
*) Any x86 CPU boots with address at the top of the addressable memory - 16 (that is, 0xFFF..F0) and holds the address lines A4+ high until a far jump is executed.
*) The I/O channel to NPU (coprocessor) is located at the top of memory space as well (and unlike on 286, that I/O area cannot be reached with in/out instructions)
*) Weiteks are truly memory-mapped and into high memory
*) VLB slots need all address lines to allow cards to map memory well above expected system RAM

So at the very least the mobo must route, and use, A31 line for booting and NPU. With Weitek support or VLB slots all lines must be used. That being said a typical chipset must translate CPUs flat memory addressing to DRAM banks and/or external cache. So RAM was usually limited by the chipset and sometimes by cache as well (that is, you could have more RAM installed but it would not be cached and that really affects performance).