77

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

Certainly. The DEC PDP-8 family was 12-bit, and so was the Intersil 6100, a single-chip CMOS implementation of the PDP-8 ISA. There have been many 24-bit DSP-type processors, from Motorola, Microchip, Analog Devices, among others. The Burroughs large systems (mainframes), starting with the B-5000 in 1961, used an ISA called "E-mode", which had 48-bit data ...


41

The 6502 CPU is just one piece of the puzzle Emulators emulate entire machines, not merely CPUs. Even the likes of QEMU emulate an entire generic computer. It helps if you think of the Apple II and NES not as singular units but as networks of components. The CPU, graphics unit, RAM and so on all have communications to each other and do so at a very fast ...


41

Existing Machinery. Reasoning about the usage of existing packages Adding a few hundred transistors for multiplexing is approximately free compared to buying production machinery for several millions - way before the first chip can be made. Creating a new chip (family) is for sure a risky bet on the future and takes some investment. Keeping this ...


37

How was microcode implemented in retro processors such as the Z80 or 8080? None of these chips (likewise 6800 and 6502) use microcode the same way as it's used today. The decoding isn't as strictly separated from execution logic. Example 1: 6502 The 6502, for example, has a 'rather' simple structure built from a timing circuit counting instruction cycle ...


31

There are many answers to this and none might satisfy you. First of all, an Emulator doesn't just do a CPU, but a machine. The same way you can't run an NES game on an Apple II. So while one may do multiple ones, different can do the hob as well. Furthermore, there are different target platforms. Linux isn't Windows which again isn't MacOS and so on. Like ...


25

specifically after the 8-bit byte became the industry standard? There's no clear point of time where the 8-bit byte became a standard, since it's still just a de facto standard nowadays1. However probably the 1970s were the transition time due to many newer architectures and standards with 8-bit bytes, and if you look at the word size list then you'll see ...


24

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 ...


24

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 ...


21

Full, hardware-assisted virtualisation, with the intention of supporting hypervisors running operating systems without requiring para-virtualisation, was added to micro-processors relatively recently. (Many RISC-style architectures were virtualisable following Popek and Goldberg’s criteria, and were used in high-end partitionable systems, but with external ...


17

The HALT condition does (at least on retro CPUs) not consume considerably less power than normal execution does. One very obvious use case is synchronizing program flow with external (hardware) events. The main use case of the HALT instruction is thus "wait for an interrupt". A prominent example outside embedded systems is synchronizing video output with ...


16

Quick shot, without looking it up in Visual 6502 (which would be the authorative option): Sign extend the branch offset (replicate MSB of offset), that will tell you the ALU input for the PC high byte. Possible values are 0 and -1 (all 1s), these are available as constants. Carry and sign of the branch offset together determine if an extra cycle is ...


15

Your question assumes that CPUs with more than 40 pins were a rarity in the 1970s, but this was common for early 16-bit CPUs. Both the TI TMS9900 and the Motorola 68000 had 16-bit external data busses, no multiplexing, and came in a 64-pin DIP package. The thing that was common at this time was DIP packaging. And the number of pins on a DIP package was ...


15

There are retro computers that have readable and writeable microcode, but not the ones you mentioned in your question. And the ability to change the microcode was extremely rare in the kinds of CPUs you are thinking about. I'll describe the way the microcode worked in the 6502, or the Decode ROM as it's usually called there (same concept, different name). ...


14

In addition to the i8087 & i8089, intel had the i80130 and i80150 "Operating System Coprocessors". These were single-chip bundled timers and irq controllers that had a subset of the iRMX-86 ('130) or CP/M-86 ('150) in ROM.


12

What was the halt instruction in early CPUs such as the Z80 and 8080 used for? Stopping the system in a known state to allow a clean restart/react to external sources. It's a very useful feature for embedded systems that react to external sources, but also as idle state for a more conventional kind of multitasking environment. What use is it to enter a ...


12

Were there ever 12-, 24-, 48-, etc bit processors? Yes! See https://en.wikipedia.org/wiki/Word_(computer_architecture) for an enumeration of historical word sizes. Before the 8-bit byte became standard, computers were not byte addressable, only word addressable. Originally, computation was mostly numeric oriented, so a (sometimes double) word data size ...


11

Coincidentally, I found this explanation reading through Microprocessor Interfacing Techniques 3rd Ed 1979 by Zaks and Lesea page 16: The Standard Microprocessor System Throughout this book, reference will be made to a “standard microprocessor.” The “standard” microprocessor today is the 8-bit microprocessor. Examples are the Intel 8080, 8085, the ...


11

Almost impossible to tell. Both CPUs have been sold by quite a lot of manufacturers in many variations - including knockoffs modified in some way to avoid royalties. One hint might be the claim of 5 to 10 billion (*1) on the WDC site: Since WDC is nowadays the major licensor (*2) and still can only give it with such a huge uncertainty, I doubt anyone will ...


11

68HC11 should be opcode compatible and it has extra index register. But using the other index register requires an extra prefix byte to indicate non-default register.


11

The Garrett AiResearch MP944 has a good claim to be the first microprocessor. It's 20-bit, designed from 1968 to 1970, and classified until 1998, so it is not well known. The Toshiba TLCS-12 family was designed from 1971-73 and is 12-bit. The Intersil 6100 has already been mentioned, it was a single-chip implementation of the older 12-bit DEC PDP-8. ...


9

I'll keep this answer relevant to retrocomputing. The remaining aspects of your question belong in Electronics.SE. Without getting into those particulars, you ought to know that these chips are not at all related. One is not the ancestor of the other. They are entirely different architectures. The 8080 was the CPU for the Altair, the first popular ...


9

Lead lengths inside a 64 pin package slowly get problematic, even at 1970s speeds. Even a digital system working at a few MHz requires you to pay attention to things like routing signal lines close to their return (or a ground plane), and keeping power bypass capacitors connected to the die with short leads. There is a good reason modern CPU packages ...


9

Yes. In fact, it is a very simple system in machine language terms. The key to understanding the system is to look at the physical construction of the part you saw. This is what we would today would call the accumulator. It holds a single mathematical value. You can see it consists primarily of several vertical rods with gears spaced out along them. Each ...


8

I was in college when the 8086 and 6502 came out, and took a digital electronics course at that time in which I designed a simple CPU using microprogramming techniques. From studying the 8086 and 6502, I could imagine that they were microcoded, but there was no way to tell for sure from the outside. Microcode, if it existed, was all burned into the chip ...


7

The canonical examples for early microcoded CISC microprocessors are probably the Intel 8086 and the Motorola 68000. Of the two, the 8086 is the simpler (29K transistors vs. 70K in the 68000). But both of these CISC processors will present challenges in terms of their complexity and in terms of finding resources about the proprietary internal microcodes. ...


7

The Popek and Goldberg virtualisation requirements are usually dug out for discussions of this kind, but it is more of a quick rule-of-thumb and it turns out that doing virtualisation well requires a more than their rules, and with ingenuity one can get away with less. Ultimately, there is no single answer because it's a case of evolution with it being ...


7

Andrew Tanenbaum wrote two papers about operand encoding, instruction sizes, and the representations of structured programming constructs, which sounds like what you’re looking for: Implications of structured programming for machine architecture (Communications of the ACM, March 1978) and Efficient encoding of machine instructions (ACM SIGARCH Computer ...


6

Just to remind what a big deal physical tooling and wiring was... ... the Mostek 6502 chip intentionally had the same electrical pinout as the Motorola 6800, despite completely different design, instruction sets, and even endian-ness. With 40-pin sockets, they were a commodity, not terribly more expensive than the same-width 24- or 28-pin sockets. (when ...


6

Appart tofro's answer there where also another usages of halt. On ZX (Z80) halt was very often used to synchronize with time. It would halt until the 50 Hz screen refresh interrupt occurs (from ULA). This way the code was synchronized with the screen and can do things like overscan, border effects, multiply resolution or multitech color techniques etc ... ...


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