The Stack Overflow podcast is back! Listen to an interview with our new CEO.

Hot answers tagged

72

Not all of the original co-processors were for floating point math. Intel itself offered an I/O coprocessor for the 8088 and 8086 called the 8089. Part of the reason it didn't do as well as the 8087 is that the PC included an empty socket for an 8087, but no support for the 8089. If you broaden the conversation out beyond just the 8086 generation of chips, ...


52

As far as I’m aware, the last FPU-less x86-compatible CPU which could still be considered general-purpose is the Vortex86SX, released in 2007 and still available now. This is a Pentium-class CPU, capable of running any Pentium code which doesn’t require an FPU. It is targeted at embedded applications, with up to 512 MiB of RAM, and includes a PCI bus, USB, ...


46

Intel x86 CPU Lineages There are only a few Intel x86 CPU microarchitectural lineages. Each of these lineages starts with a processor design that was largely made from scratch, incorporating little of any previous CPU's design. The early microarchitectural lineages were all dead ends. In this stage of x86 CPU design Intel came up with a new ...


42

8086 was designed to make asm source porting from 8080 easy (not the other direction). It is not binary compatible with 8080, and not source-compatible either. 8080 is not an x86 CPU. 8080 is a more distant ancestor that had some influence on the design of 8086, but it's not the same architecture. As an analogy, all x86 CPUs are the same genus but ...


42

I’m not sure the separate cache was “obviously better” back when the Intel designers were working on the 80486, at least, not to the designers in question. But “better” might not even have been much of a factor. The design history of the cache systems in Motorola and Intel CPUs is quite different, which can explain the different approaches used in the 68040 ...


40

My approximate version: Prior to the Pentium, Intel CPUs were pipelined: different parts of the CPU would simultaneously be working on different operations, but the different parts were designed to work in sequence, with every operation proceeding through all parts. The Pentium expanded on that by being superscalar. Rather than there being only exactly one ...


34

The Meltdown attack is about figuring out what's in protected memory (typically, kernel memory) by arranging for it to be speculatively read, and then looking for residual side effects after the speculative read is discarded. MS-DOS is immune to Meltdown because it doesn't do memory protection. If you want to figure out what's in RAM, you can simply look. ...


28

My guess is that it was merely a design decision based upon the assumption that once a protected mode OS is started, there is no need to go back. Most microprocessors at that time already booted in its most privileged mode and had at least two levels of protection. The 80286 had to boot in real mode to keep compatibility with DOS and I think they thought DOS ...


26

It depends on the airflow in your computer. You can run even a 100 MHz 486DX4 without a heatsink or fan, if your PSU’s fan (or another fan) pulls enough air over it; they commonly used heatsinks though (without fans). You can find examples of pretty much all configurations starting with the DX2/66 (or even the DX/50, but that’s pretty rare): no heatsink, ...


25

Slackware still claims to support 486s: Below is a list of minimum system requirements needed to install and run Slackware. 486 processor 64MB RAM (1GB+ suggested) About 5GB+ of hard disk space for a full install CD or DVD drive (if not bootable, then a bootable USB flash stick or PXE server/network card) Knoppix also still claims to ...


25

Yes, IBM System z mainframes (and their predecessors) have been using "mainframe-on-a-chip" microprocessors for a couple decades now. In 1995 I used a IBM PS/2 with an IBM System/390 Processor Card in it running MVS. It executed System/390 instructions natively, using (I believe) one of the same microprocessors used in the System/390 mainframes of the time. ...


25

I’m assuming you’re asking about x86 processors, not the older 8-bit CPUs. Real mode is always segmented, and everything (CPU, operating system, programs, even peripherals on the CPU bus) has access to all the system’s address space up to just over 1 MiB (1 MiB strictly before the 286). You can write programs without paying attention to segments, and you’ll ...


24

Wikipedia says: According to Morse et al.,.[5] the designers actually contemplated using an 8-bit shift (instead of 4-bit), in order to create a 16 MB physical address space. However, as this would have forced segments to begin on 256-byte boundaries, and 1 MB was considered very large for a microprocessor around 1976, the idea was dismissed. Also, there ...


22

Linux still supports the 80486 SX: the SX was simply a DX without the FPU, and the FPU emulation code is still present (Processor type and features->Math emulation). Finding a distro is a bit trickier. Gentoo still supports the 486 in theory (when the installation instructions call for downloading a "stage 3" archive, simply download the "i486" version), ...


21

To supplement @PeterCordes's excellent answer, I thought it would be worth going into the details of exactly how close to source code compatible the two processors are -- for example, how easy would it be to use textual substitutions (e.g. macros) to automatically translate 8080 code to 8086 code, and what the limitations would be. The first point would be ...


21

Ken Shirriff has, as so often, a nice table to start with - especially nice to detect the 'undocumented' ones. All opcodes in lower case are 'undocumented'. With sorting his table according to the 'octal' (2-3-3) decoding logic the 8085 uses (*1), the first are nicely grouped where the 8080 only decoded NOP: (NOP - Not undocumented, but on the 8080 it ...


21

Stephens Answer already carries most implications, so this is merely an add-on. First to keep in mind is that the 68k was way more in need of a cache than x86 CPUs, as its memory access was in line with execution, while the x86 prefetch buffer used 'free' cycles to read ahead, thus utilizing the memory much better than the 68k could do (*1). Next, it ...


20

It was very common to build CPUs out of TTL logic prior to the 4004, 8080 and the 6800. This was the standard way to build later minicomputers. Examples are the Data General NOVA, Xerox Alto and TI-990. Also, if a company needed a processor for, say, a CNC machine or a video game (Vectorbeam), it wasn't unusual for them to build a unique processor from TTL. ...


19

I have had great success with Gentoo Linux on the earliest generation of Intel 80486 processors, though I had to patch it (below). It works on the later ones too (486DX2 and 486DX4, both clock multiplied and having the back-ported Pentium CPUID instruction). I have it working on a Compaq LTE Elite 4/75CX laptop with a whopping 24MiB of memory. Bugs have ...


19

I don't think there ever were any incompatible co-processors which used the same sockets and I/O mechanisms as the Intel co-processors. There were other incompatible co-processors, at least for the 386 and 486: the Weitek 3167 and 4167 (Wikipedia also mentions the 1067 for 286s, and 1167 and 2167 for 386s, but I don't know anything about them). These ...


17

Hmm, an interesting question to be sure. It certainly would have been possible to make something like a 4004 style microprocessor from TTL chips. In fact, when Intel made their microprocessor, the first in the world, they chose not to pursue a patent for it, because they felt that there was no invention there; it was obvious for someone to go and combine the ...


17

You should at least use a heatsink. For slower CPUs (like yours) it will work without a fan - if the heatsink is large (large for 1995 standards). A 100 MHz DX2 (50 MHz FSB, multiplier of 2) is a pretty rare beast - as 50 MHz boards are - since neither Intel nor AMD ever sold them (officially). Are you sure you're not using a 486DX4 with a 33 MHz FSB and a ...


16

This was intentional so that the CPU would support secure operating systems. In a secure operating system with rigorous memory access protections you could not allow any software - user or kernel extension or driver - to switch back to the full freedom of real mode. They had a lot of interesting memory management hardware on the '286: rings and call gates - ...


16

The 8080 is not a microcontroller, but a microprocessor, so it had no special provision for LCD displays, as modern microcontroller may have, except maybe for the ability to use packed BCD numbers. It had no in-built host peripherals that would support protocols like RS232 or SPI. You don't mention what kind of LCD display your college used, so this is only ...


16

Alan Cox mentions in this post having seen a hard drive interface that plugged into the 8087 socket (for computers with no expansion slots). I've checked various issues of Amstrad PC magazine. PPC hard drive upgrades are advertised by ABSI Consultants, Alfa Electronics Ltd, Dovetail DST, International Hard Discs, and Stratum Technology Limited. I have a PPC ...


16

All Intel x86 CPUs since the 80486 line have included floating point instructions, i.e. everything from the Pentium* onward. So the last Intel processor to lack an on-board floating-point unit (FPU) was the 80486SX (and the embedded 80486GX). Other manufacturers, who made 486-compatible processors, continued making non-FPU chips, aiming for the budget ...


15

Here is an homebrew / educational computer made of LSI / MSI chips : http://www.kenbak-1.net/index.htm Designed in 1971 256 bytes of memory made of MOS shift registers.


15

For the most part you're correct. Neither MS-DOS nor Windows 95/98/ME implemented a security model that would not be impacted by the Meltdown or Spectre vulnerabilities. MS-DOS didn't protect memory at all, Windows 9x's separation of user and "kernel" memory was just to protect against user processes accidentally from modifying memory outside of their ...


14

You can "bring Rosetta back" by installing an older version of Mac OS X which supports it — Tiger, Leopard or Snow Leopard (on the latter it's an optional component). Rosetta was removed from later version for licensing reasons. If you have an installation CD for PowerPC Mac OS X, you can use a full-system emulator to run it. Currently it seems your best ...


14

The first CGA PCs used a single clock from which they derived all their timings. To allow for NTSC output, the main clock had to run at a multiple of the colour subcarrier frequency; the main clock ended up running at 14.31818 MHz, i.e. four times the NTSC colour subcarrier frequency. (This explains the 4.77 MHz frequency of the first PC: that's 14.31818 ÷ 3....


Only top voted, non community-wiki answers of a minimum length are eligible