2149:
967:
2368:
2083:
549:
difference is that in a custom logic design, changes to the individual steps require the hardware to be redesigned. Using microcode, all that changes is the code stored in the memory containing the microcode. This makes it much easier to fix problems in a microcode system. It also means that there is no effective limit to the complexity of the instructions, it is only limited by the amount of memory one is willing to use.
1679:"Horizontal microcode has several discrete micro-operations that are combined in a single microinstruction for simultaneous operation." Horizontal microcode is typically contained in a fairly wide control store; it is not uncommon for each word to be 108 bits or more. On each tick of a sequencer clock a microcode word is read, decoded, and used to control the functional elements that make up the CPU.
541:
various control lines, the microcode engine is connected to these lines instead, and these are turned on and off as the engine reads the microcode instructions in sequence. The microcode instructions are often bit encoded to those lines, for instance, if bit 8 is true, that might mean that the ALU should be paused awaiting data. In this respect microcode is somewhat similar to the paper rolls in a
4483:
945:
a full 32-bit ALU that performs the same addition in a single cycle. These differences could be implemented in control logic, but the cost of implementing a completely different decoder for each machine would be prohibitive. Using microcode meant all that changed was the code in the ROM. For instance, one machine might include a
743:; higher-level instructions mean greater programmer productivity, so an important advantage of microcode was the relative ease by which powerful machine instructions can be defined. The ultimate extension of this are "Directly Executable High Level Language" designs, in which each statement of a high-level language such as
1647:
program is intended to execute the bits in the same way as the electronics, and allows much more freedom to debug the microprogram. After the microprogram is finalized, and extensively tested, it is sometimes used as the input to a computer program that constructs logic to produce the same data. This
1622:
have several execution units. Even simple computers usually have one unit to read and write memory, and another to execute user code. These elements could often be brought together as a single chip. This chip comes in a fixed width that would form a "slice" through the execution unit. These are known
1272:
The B700 "microprocessor" execute application-level opcodes using sequences of 16-bit microinstructions stored in main memory; each of these is either a register-load operation or mapped to a single 56-bit "nanocode" instruction stored in read-only memory. This allows comparatively simple hardware to
1078:
The industry responded to the concept of RISC with both confusion and hostility, including a famous dismissive article by the VAX team at
Digital. A major point of contention was that implementing the instructions outside of the processor meant it would spend much more time reading those instructions
1071:
to the compiler, which is the entire purpose of using a compiler in the first place. The basic concept was soon picked up by university researchers in
California, where simulations suggested such designs would trivially outperform even the fastest conventional designs. It was one such project, at the
953:
The outcome of this design was that customers could use a low-end model of the family to develop their software, knowing that if more performance was ever needed, they could move to a faster version and nothing else would change. This lowered the barrier to entry and the 360 was a runaway success. By
944:
But the real value in the 360 line was that one could build a series of machines that were completely different internally, yet run the same ISA. For a low-end machine, one might use an 8-bit ALU that requires multiple cycles to complete a single 32-bit addition, while a higher end machine might have
2249:) are frequently used by modern compilers. Even immediate to stack (i.e., memory result) arithmetic operations are commonly employed. Although such memory operations, often with varying length encodings, are more difficult to pipeline, it is still fully feasible to do so - clearly exemplified by the
1070:
concept. The complex microcode engine and its associated ROM is reduced or eliminated completely, and those circuits instead dedicated to things like additional registers or a wider ALU, which increases the performance of every program. When complex sequences of instructions are needed, this is left
1059:
almost always used the simplest one, instead of the one most directly representing the code. They learned that this was because those instructions were always implemented in hardware, and thus run the fastest. Using the other instruction might offer higher performance on some machines, but there was
540:
The basic idea behind microcode is to replace the custom hardware logic implementing the instruction sequencing with a series of simple instructions run in a "microcode engine" in the processor. Whereas a custom logic system might have a series of diodes and gates that output a series of voltages on
1010:
had instruction sets that were simple enough to be implemented in dedicated logic. By this time, the control logic could be patterned into the same die as the CPU, making the difference in cost between ROM and logic less of an issue. However, it was not long before these companies were also facing
1884:
controls that part of the CPU. With this type of microcode, a designer explicitly chooses to make a slower CPU to save money by reducing the unused bits in the control store; however, the reduced complexity may increase the CPU's clock frequency, which lessens the effect of an increased number of
1170:
is unique among System/360 models in using the top 16 K bytes of core storage to hold the control storage for the microprogram. The 2025 uses a 16-bit microarchitecture with seven control words (or microinstructions). After system maintenance or when changing operating mode, the microcode is
1825:
For each tick it is common to find that only some portions of the CPU are used, with the remaining groups of bits in the microinstruction being no-ops. With careful design of hardware and microcode, this property can be exploited to parallelise operations that use different areas of the CPU; for
1454:
Meta 4 Series 16 computer system was a user-microprogammable system first available in 1970. The microcode had a primarily vertical style with 32-bit microinstructions. The instructions were stored on replaceable program boards with a grid of bit positions. One (1) bits were represented by small
842:
has full 32-bit data paths and implements the general-purpose registers in a special unit of higher-speed core memory. The Model 65 through the Model 195 have larger data paths and implement the general-purpose registers in faster transistor circuits. In this way, microprogramming enabled IBM to
2277:
processors are designed to execute every instruction (as long as it is in the cache) in a single cycle. This is very similar to the way CPUs with microcode execute one microinstruction per cycle. VLIW processors have instructions that behave similarly to very wide horizontal microcode, although
767:
were used to alleviate this. High-level machine instructions, made possible by microcode, helped further, as fewer more complex machine instructions require less memory bandwidth. For example, an operation on a character string can be done as a single machine instruction, thus avoiding multiple
735:
Microcode simplified the job by allowing much of the processor's behaviour and programming model to be defined via microprogram routines rather than by dedicated circuitry. Even late in the design process, microcode could easily be changed, whereas hard-wired CPU designs were very cumbersome to
1834:
In vertical microcode, each microinstruction is significantly encoded, that is, the bit fields generally pass through intermediate combinatory logic that, in turn, generates the control and sequencing signals for internal CPU elements (ALU, registers, etc.). This is in contrast with horizontal
1548:
Each microinstruction in a microprogram provides the bits that control the functional elements that internally compose a CPU. The advantage over a hard-wired CPU is that internal CPU control becomes a specialized form of a computer program. Microcode thus transforms a complex electronic design
1042:
While companies continued to compete on the complexity of their instruction sets, and the use of microcode to implement these was unquestioned, in the mid-1970s an internal project in IBM was raising serious questions about the entire concept. As part of a project to develop a high-performance
821:
A processor's microprograms operate on a more primitive, totally different, and much more hardware-oriented architecture than the assembly instructions visible to normal programmers. In coordination with the hardware, the microcode implements the programmer-visible architecture. The underlying
548:
The distinction between custom logic and microcode may seem small, one uses a pattern of diodes and gates to decode the instruction and produce a sequence of signals, whereas the other encodes the signals as microinstructions that are read in sequence to produce the same results. The critical
1182:
uses an 8-bit microarchitecture with only a few hardware registers; everything that the programmer saw is emulated by the microprogram. The microcode for this model is also held on special punched cards, which are stored inside the machine in a dedicated reader per card, called "CROS" units
904:
in computer software. His initial implementation consisted of a pair of matrices: the first one generated signals in the manner of the
Whirlwind control store, while the second matrix selected which row of signals (the microprogram instruction word, so to speak) to invoke on the next cycle.
2337:
with an instruction encoding similar to RISC or traditional microcode. A hardwired instruction decode unit directly emits microoperations for common x86 instructions, but falls back to a more traditional microcode ROM containing microoperations for more complex or rarely used instructions.
1850:, use machine code, running in a special mode that gives it access to special instructions, special registers, and other hardware resources unavailable to regular machine code, to implement some instructions and other functions, such as page table walks on Alpha processors. This is called
2033:
microcodes to be fixed by patching their microprograms, rather than requiring the entire chips to be replaced. A second prominent example is the set of microcode patches that Intel offered for some of their processor architectures of up to 10 years in age, in a bid to counter the security
1034:, all implemented in microcode. This did not come without cost, according to early articles, about 20% of the chip's surface area (and thus cost) is the microcode system. and later estimates suggest approximately 23,000 of the systems 68,000 gates were part of the microcode system.
1835:
microcode, in which the bit fields either directly produce the control and sequencing signals or are only minimally encoded. Consequently, vertical microcode requires smaller instruction lengths and less storage, but requires more time to decode, resulting in a slower CPU clock.
480:(ALU) which performs instructions such as addition or comparing two numbers, circuits for reading and writing data to external memory, and small areas of onboard memory to store these values while they are being processed. In most designs, additional high-performance memory, the
843:
design many System/360 models with substantially different hardware and spanning a wide range of cost and performance, while making them all architecturally compatible. This dramatically reduces the number of unique system software programs that must be written for each model.
411:, thereby enabling greater flexibility in designing and altering instructions. Moreover, it facilitates the construction of complex multi-step instructions, while simultaneously reducing the complexity of computer circuits. The act of writing microcode is often referred to as
1103:
Some processor designs use machine code that runs in a special mode, with special instructions, available only in that mode, that have access to processor-dependent hardware, to implement some low-level features of the instruction set. The DEC Alpha, a pure RISC design, used
1352:
and audio processor, utilizes microcode; it is possible to implement new effects or tweak the processor to achieve the desired output. Some notable examples of custom RCP microcode include the high-resolution graphics, particle engines, and unlimited draw distances found in
940:
series. This allowed the machines to have a very complex instruction set, including operations that matched high-level language constructs like formatting binary values as decimal strings, storing the complex series of instructions needed for this task in low cost memory.
2233:
The complex instructions in heavily microcoded implementations may not take much extra machine resources, except for microcode space. For example, the same ALU is often used to calculate an effective address and to compute the result from the operands, e.g., the original
1280:
is implemented with radically different hardware including bit-addressable main memory but has a similar multi-layer organisation. The operating system preloads the interpreter for whatever language is required. These interpreters present different virtual machines for
703:
with an emulator feature. Microprograms are carefully designed and optimized for the fastest possible execution, as a slow microprogram would result in a slow machine instruction and degraded performance for related application programs that use such instructions.
812:
Microprogramming is still used in modern CPU designs. In some cases, after the microcode is debugged in simulation, logic functions are substituted for the control store. Logic functions are often faster and less expensive than the equivalent microprogram memory.
508:. Reading those instructions one by one is taking up time that could be used to read and write the actual data. For this reason, it is common for non-RISC designs to have many different instructions that differ largely on where they store data. For instance, the
527:
open for other operations. Internally, however, these instructions are not separate operations, but sequences of the operations the units actually perform. Converting a single instruction read from memory into the sequence of internal actions is the duty of the
626:. In the latter case, the CPU initialization process loads microcode into the control store from another storage medium, with the possibility of altering the microcode to correct bugs in the instruction set, or to implement new machine instructions.
1212:
has separate instruction fetch (I-unit) and execution (E-unit) to provide high performance. The I-unit is hardware controlled. The E-unit is microprogrammed; the control words are 108 bits wide on a basic 360/85 and wider if an emulator feature is
1091:
uses hardwired circuitry to fetch and decode instructions, using microcode only to execute instructions; register-register move and arithmetic instructions required only one microinstruction, allowing them to be completed in one clock cycle. The
1082:
The debate raged until the first commercial RISC designs emerged in the second half of the 1980s, which easily outperformed the most complex designs from other companies. By the late 1980s it was over; even DEC was abandoning microcode for their
923:
Microcode remained relatively rare in computer design as the cost of the ROM needed to store the code was not significantly different than using a custom control store. This changed through the early 1960s with the introduction of mass-produced
499:
they are using. So to add two numbers, for instance, the compiler may output instructions to load one of the values into one register, the second into another, call the addition function in the ALU, and then write the result back out to memory.
1712:
For this type of micromachine to implement a JUMP instruction with the address following the opcode, the microcode might require two clock ticks. The engineer designing it would write microassembler source code looking something like this:
905:
Conditionals were implemented by providing a way that a single line in the control store could choose from alternatives in the second matrix. This made the control signals conditional on the detected internal signal. Wilkes coined the term
2009:
WCS offers several advantages including the ease of patching the microprogram and, for certain hardware generations, faster access than ROMs can provide. User-programmable WCS allows the user to optimize the machine for specific purposes.
885:: a two-dimensional lattice, where one dimension accepts "control time pulses" from the CPU's internal clock, and the other connects to control signals on gates and other circuits. A "pulse distributor" takes the pulses generated by the
1079:
from memory, thereby slowing overall performance no matter how fast the CPU itself ran. Proponents pointed out that simulations clearly showed the number of instructions was not much greater, especially when considering compiled code.
846:
A similar approach was used by
Digital Equipment Corporation (DEC) in their VAX family of computers. As a result, different VAX processors use different microarchitectures, yet the programmer-visible architecture does not change.
949:
and thus its microcode for multiplying two numbers might be only a few lines line, whereas on the same machine without the FPU this would be a program that did the same using multiple additions, and all that changed was the ROM.
503:
As the sequence of instructions needed to complete this higher-level concept, "add these two numbers in memory", may require multiple instructions, this can represent a performance bottleneck if those instructions are stored in
1455:
metal squares that were sensed by amplifiers, zero (0) bits by the absence of the squares. The system could be configured with up to 4K 16-bit words of microstore. One of
Digital Scientific's products was an emulator for the
556:
instructions for the processor. In microcoded processors, fetching and decoding those instructions, and executing them, may be done by microcode. To avoid confusion, each microprogram-related element is differentiated by the
2160:. The reason given is: Many CISC processors now do instruction fetch and decode in hardware, and execute most if not all instructions in hardware, and both RISC and CISC processors execute several operations per clock cycle.
982:
were far too simple to require microcode, and were more similar to earlier mainframes in terms of their instruction sets and the way they were decoded. But it was not long before their designers began using more powerful
1642:
allows a programmer to define the table of bits symbolically. Because of its close relationship to the underlying architecture, "microcode has several properties that make it difficult to generate using a compiler." A
825:
The IBM System/360 has a 32-bit architecture with 16 general-purpose registers, but most of the System/360 implementations use hardware that implements a much simpler underlying microarchitecture; for example, the
2268:
Non-RISC instructions inherently perform more work per instruction (on average), and are also normally highly encoded, so they enable smaller overall size of the same program, and thus better use of limited cache
1096:'s fetch and decode hardware fetches instructions and decodes them into series of micro-operations that are passed on to the execution unit, which schedules and executes the micro-operations, possibly doing so
1205:
has two internal datapaths which operated in parallel: a 32-bit datapath used for arithmetic operations, and an 8-bit data path used in some logical operations. The control store uses 90-bit microinstructions.
822:
hardware need not have a fixed relationship to the visible architecture. This makes it easier to implement a given instruction set architecture on a wide variety of underlying hardware micro-architectures.
1310:
workstation used a microcoded design but, unlike many computers, the microcode engine is not hidden from the programmer in a layered design. Applications take advantage of this to accelerate performance.
1568:
picks the next word of the control store. A sequencer is mostly a counter, but usually also has some way to jump to a different part of the control store depending on some data, usually data from the
2629:
487:
To properly perform an instruction, the various circuits have to be activated in order. For instance, it is not possible to add two numbers if they have not yet been loaded from memory. In
4505:
889:
and breaks them up into eight separate time pulses, each of which activates a different row of the lattice. When the row is activated, it activates the control signals connected to it.
1671:
before doing so (vertical microcode). Consequently, each horizontal microinstruction is wider (contains more bits) and occupies more storage space than a vertical microinstruction.
1063:
The team came to a radical conclusion: "Imposing microcode between a computer and its users imposes an expensive overhead in performing the most frequently executed instructions."
523:", that most closely matches the ultimate operation can reduce the number of instructions to one, saving memory used by the program code and improving performance by leaving the
1631:
family is one of the best known examples of bit slice elements. The parts of the execution units and the whole execution units are interconnected by a bundle of wires called a
805:
is an example of a microprocessor using a PLA for instruction decode and sequencing. The PLA is visible in photomicrographs of the chip, and its operation can be seen in the
2186:
A CPU that uses microcode generally takes several clock cycles to execute a single instruction, one clock cycle for each step in the microprogram for that instruction. Some
732:) made them difficult to design and debug; highly encoded and varied-length instructions can contribute to this as well, especially when very irregular encodings are used.
838:
has 8-bit data paths to the ALU and 16-bit data paths to main memory and also implemented the general-purpose registers in a special unit of higher-speed core memory. The
3943:
728:
state machine circuitry. While such hard-wired processors were very efficient, the need for powerful instruction sets with multi-step addressing and complex operations (
801:(ROM) (instead of combinational logic) mainly for instruction decoding, and let a simple state machine (without much, or any, microcode) do most of the sequencing. The
4437:
974:
is stored in the two large square blocks in the upper right and controlled by circuitry to the right of it. It takes up a significant amount of the total chip surface.
2179:
The design trend toward heavily microcoded processors with complex instructions began in the early 1960s and continued until roughly the mid-1980s. At that point the
720:. Each step needed to fetch, decode, and execute the machine instructions (including any operand address calculations, reads, and writes) was controlled directly by
438:, and so forth. This approach provides a relatively straightforward method of ensuring software compatibility between different products within a processor family.
3251:
2278:
typically without such fine-grained control over the hardware as provided by microcode. RISC instructions are sometimes similar to the narrow vertical microcode.
4080:
1667:, referring primarily to whether each microinstruction controls CPU elements with little or no decoding (horizontal microcode) or requires extensive decoding by
3162:
5651:
476:
At the hardware level, processors contain a number of separate areas of circuitry, or "units", that perform different tasks. Commonly found units include the
3434:
634:
Microprograms consist of series of microinstructions, which control the CPU at a very fundamental level of hardware circuitry. For example, a single typical
3734:
1838:
Some vertical microcode is just the assembly language of a simple conventional computer that is emulating a more complex computer. Some processors, such as
4227:(15 August 1979 ed.). Texas Instruments Archives, RG-20 accession 94-08, Box 10, 45C. DeGolyer Library, Southern Methodist University, Dallas, TX USA.
3502:
2554:
1826:
example, in the case above, the ALU is not required during the first tick, so it could potentially be used to complete an earlier arithmetic instruction.
1682:
In a typical implementation a horizontal microprogram word comprises fairly tightly defined groups of bits. For example, one simple arrangement might be:
1183:(Capacitor Read-Only Storage). Another CROS unit is added for machines ordered with 1401/1440/1460 emulation and for machines ordered with 1620 emulation.
1060:
no way to know what machine they were running on. This defeated the purpose of using microcode in the first place, which was to hide these distinctions.
830:
has 8-bit data paths to the arithmetic logic unit (ALU) and main memory and implemented the general-purpose registers in a special unit of higher-speed
4369:
3568:
3601:
3471:
2836:
1888:
As transistors grew cheaper, horizontal microcode came to dominate the design of CPUs using microcode, with vertical microcode being used less often.
1190:
uses 56-bit control words. The 2040 box implements both the System/360 main processor and the multiplex channel (the I/O processor). This model uses
2218:
The machine resources devoted to rarely used complex instructions are better used for expediting performance of simpler, commonly used instructions.
1226:) pulsed by a sequencer with conditional execution. Wires routed through the cores are enabled for various data and logic elements in the processor.
4623:
3535:
1299:
produced computers in which the microcode is accessible to the user; this allows the creation of custom assembler level instructions. Microdata's
5762:
4945:
4555:
4173:
1587:, and may also include other registers that are not easily accessible to the application programmer. Often the register set is a triple-ported
755:
Fountainhead
Processor are examples of this. During the 1970s, CPU speeds grew more quickly than memory speeds and numerous techniques such as
2209:
Programming has largely moved away from assembly level, so it's no longer worthwhile to provide complex instructions for productivity reasons.
5464:
4023:
3677:
2341:
For example, an x86 might look up microoperations from microcode to handle complex multistep operations such as loop or string instructions,
932:, which was far less expensive than dedicated logic based on diode arrays or similar solutions. The first to take real advantage of this was
2730:
2671:
1549:
challenge (the control of a CPU) into a less complex programming challenge. To take advantage of this, a CPU is divided into several parts:
4742:
1652:. Even without fully optimal logic, heuristically optimized logic can vastly reduce the number of transistors from the number needed for a
1579:
set is a fast memory containing the data of the central processing unit. It may include registers visible to application programs, such as
5621:
5187:
5004:
347:
4571:
1087:
designs, and CISC processors switched to using hardwired circuitry, rather than microcode, to perform many functions. For example, the
5975:
3967:
3210:
699:
To simultaneously control all processor's features in one cycle, the microinstruction is often wider than 50 bits; e.g., 128 bits on a
4127:
1598:
performs calculations, usually addition, logical negation, a right shift, and logical AND. It often performs other functions, as well.
4967:
459:. In this context, all code within a device is termed microcode, whether it is microcode or machine code. For instance, updates to a
3850:
407:
data, or other input into sequences of detailed circuit-level operations. It separates the machine instructions from the underlying
380:. It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal
5616:
1325:(IMPI) using a horizontal microcode format. The so-called vertical microcode layer implements the System/38's hardware-independent
3934:
2804:
5688:
1572:
and always some part of the control store. The simplest sequencer is just a register loaded from a few bits of the control store.
1394:
4596:
WepSIM: An Online
Interactive Educational Simulator Integrating Microdesign, Microprogramming, and Assembly Language Programming
3774:
5970:
5441:
4364:
1359:
4577:
3276:
2530:
396:
general-purpose CPUs in contemporary desktops and laptops, it functions only as a fallback path for scenarios that the faster
3810:
3717:
3404:
2902:
1524:
854:) in the processor; a bug can often be fixed by replacing a portion of the microprogram rather than by changes being made to
572:
has a hardwired IBox unit to fetch and decode instructions, which it hands to a microcoded EBox unit to be executed, and the
3816:
3128:
2497:
2006:
Some commercial machines, for example IBM 360/85, have both a read-only storage and a writable control store for microcode.
1557:
may decode instructions in hardware and determine the microcode address for processing the instruction in parallel with the
6385:
5509:
4772:
4616:
3594:
Digital
Scientific Meta 4 Computer System Typical ROM Pattern Listing and Program To Simulate The IBM 1130 Instruction Set
1917:. In this design, rather than storing the microcode in ROM or hard-wired logic, the microcode is stored in a RAM called a
6395:
5536:
3068:
Digest of Papers
Compcon Spring '90. Thirty-Fifth IEEE Computer Society International Conference on Intellectual Leverage
2757:
3888:
3242:
4663:
4261:
3384:
1072:
1055:) programs. This led them to notice a curious pattern: when the ISA presented multiple versions of an instruction, the
4084:
2212:
Simpler instruction sets allow direct execution by hardware, avoiding the performance penalty of microcoded execution.
712:
Microcode was originally developed as a simpler method of developing the control logic for a computer. Initially, CPU
5703:
5531:
5504:
4883:
4531:
4426:
3742:
3660:
3625:
3316:
3170:
3145:
3087:
2491:
2130:
2039:
1474:
from 1975 through the early 1980s. It was used to implement three different computer architectures in microcode: the
1440:
1429:
1418:
607:(PLA) structure, or in a combination of both. However, machines also exist that have some or all microcode stored in
4195:
4152:
2782:
2215:
Analysis shows complex instructions are rarely used, hence the machine resources devoted to them are largely wasted.
2112:
1447:
are examples of highly encoded "vertical" microsequencer implementations of the Intel 8086/8088, 8051, and MOS 6502.
6564:
6518:
6081:
4974:
4940:
4935:
4854:
4819:
4067:
2455:
IBM horizontally microcoded processors had multiple micro-orders and register select fields that required decoding.
2187:
2035:
1160:
reputedly uses a hard-wired control store consisting of wires threaded through ferrite cores, known as "the laces".
786:
181:
17:
3426:
1411:
are microprogrammable; in fact, VU1 is only accessible via microcode for the first several generations of the SDK.
6554:
6493:
6390:
5791:
5698:
5499:
4720:
4609:
1048:
1006:
as well. Early designs were extremely simple, and even the more powerful 8-bit designs of the mid-1970s like the
340:
4149:"A microcode reliability update is available that improves the reliability of systems that use Intel processors"
3559:
3493:
2562:
1988:
1100:. Complex instructions are implemented by microcode that consists of predefined sequences of micro-operations.
568:
in order to delegate sub-tasks that must be performed essentially asynchronously in parallel. For example, the
5519:
5238:
4673:
3592:
2190:
processors include instructions that can take a very long time to execute. Such variations interfere with both
2108:
5693:
5541:
5514:
5375:
4989:
4950:
4807:
4105:
3770:
2703:
2680:
1945:
1483:
779:
225:
3526:
1329:(MI) instruction set by translating MI code to IMPI code and executing it. Prior to the introduction of the
6130:
5892:
5368:
5329:
4984:
4979:
4913:
4725:
4464:
4238:
3457:
2845:
2298:
1968:
1249:
1109:
431:
373:
274:
3995:
IBM System/360 Special
Feature Description 709/7090/7094 Compatibility Feature for IBM System/360 Model 85
5757:
5454:
5152:
4849:
4047:
Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3A: System Programming Guide, Part 1
3333:
2887:
1528:
1371:
608:
82:
31:
2694:
591:
for which it is designed, as it constitutes an inherent part of the particular processor design itself.
6407:
6054:
5471:
4962:
4930:
4700:
4688:
4668:
3188:
2988:
2274:
2104:
1027:
748:
491:
designs, the proper ordering of these instructions is largely up to the programmer, or at least to the
333:
235:
6498:
6461:
6451:
4839:
1891:
When both vertical and horizontal microcode are used, the horizontal microcode may be referred to as
1697:
1649:
1595:
1580:
1365:
1254:
901:
583:
programmer, does not normally see or change microcode. Unlike machine code, which often retains some
198:
169:
98:
4181:
2647:
1116:, instructions requiring interlocked memory access that are similar to instructions provided by the
6513:
5920:
5856:
5833:
5683:
5645:
5481:
5431:
5426:
4903:
4797:
4705:
4513:
4509:
4493:
2878:
2306:
2286:
2093:
1349:
794:
604:
253:
175:
4009:
3685:
1112:(TLB) miss handling and interrupt handling, as well as providing, for Alpha-based systems running
6466:
6249:
6143:
6107:
6024:
6008:
5850:
5639:
5598:
5586:
5449:
5363:
5284:
5049:
4710:
4653:
3707:
2754:"J-11: DEC's fourth and last PDP-11 microprocessor design ... features ... ROM/PLA control store"
2718:
2382:
2345:
2302:
2097:
1937:
1619:
1603:
1527:
implement patchable microcode (patch by operating system). Such microcode is patched to device's
1209:
1202:
1187:
1167:
839:
835:
827:
700:
369:
306:
231:
110:
3922:
4096 x 75-bit SRAM writable control store: 74-bit microinstruction with 1 parity bit (18 fields)
3884:
6272:
6244:
6154:
6119:
5868:
5862:
5844:
5578:
5572:
5476:
5380:
5271:
5210:
5072:
4715:
3103:
2588:
2195:
1997:
1908:
1509:
1326:
1097:
1012:
875:
introduced the concept of a control store as a way to simplify computer design and move beyond
785:. The approach of increasingly complex microcode-implemented instruction sets was later called
717:
599:
Engineers normally write the microcode during the design phase of a processor, storing it in a
584:
397:
321:
280:
58:
3709:
High Availability and Scalability of Mainframe Environments using System z and z/OS as example
3308:
3293:
2221:
Complex microcoded instructions may require many clock cycles that vary, and are difficult to
6446:
6355:
6101:
5813:
5631:
5390:
5358:
5316:
5228:
5029:
4844:
4834:
4824:
4814:
4784:
4767:
4632:
4565:
4360:
4317:
4256:
3467:
1300:
1296:
1262:
647:
623:
477:
203:
186:
88:
39:
4589:
4550:
4225:
Texas Instruments Model 990 Computer MDS-990 Microcode Development System Programmer's Guide
3911:
6476:
6412:
5998:
5720:
5610:
5557:
5089:
4802:
4658:
4640:
4378:
4365:"Microprogramming and the Design of the Control Circuits in an Electronic Digital Computer"
4174:"Server Products - BIOS Update required when Missing Microcode message is seen during POST"
4123:
2415:
2393:
2222:
2062:
1656:(ROM) control store. This reduces the cost to produce, and the electricity used by, a CPU.
1607:
1569:
1398:
1273:
act either as a mainframe peripheral controller or to be packaged as a standalone computer.
1245:
872:
831:
756:
496:
381:
259:
2049:
Some machines offer user-programmable writable control stores as an option, including the
1749:# The sequencer instruction "next" means just add 1 to the control word address.
8:
6523:
6508:
6328:
6179:
6161:
6125:
6113:
5767:
5714:
5491:
5407:
5289:
5144:
5039:
4898:
4442:
3880:
3839:
2404:
2342:
1668:
1497:
1345:
946:
802:
721:
660:
75:
4545:
4382:
4298:
2162:
Please help update this article to reflect recent events or newly available information.
2042:– which went public at the start of 2018. A microcode update can be installed by Linux,
1880:
selects which part of the CPU will be controlled by this word of the control store. The
6380:
6372:
6224:
6199:
6003:
5878:
5402:
5343:
5223:
4955:
4683:
4394:
4337:
4278:
4232:
3355:
3045:
2523:
2373:
1740:# jump opcode, by copying from the memory data register to the memory address register.
1576:
1475:
1380:
1318:
984:
725:
588:
484:, is used to store temporary values, not just those needed by the current instruction.
385:
771:
Architectures with instruction sets implemented by complex microprograms included the
6559:
6333:
6300:
6216:
6148:
6049:
6039:
6029:
5960:
5955:
5950:
5873:
5802:
5708:
5668:
5301:
5251:
5201:
5177:
5059:
4999:
4994:
4876:
4792:
4422:
4415:
3806:
3763:
3713:
3656:
3380:
3312:
3141:
3083:
2898:
2487:
2282:
2202:
2191:
1376:
1142:
988:
764:
740:
580:
423:
4398:
4282:
4045:
3876:
3049:
2925:
1808:# The instruction decode is not shown, because it is usually a mess, very particular
1734:# moved the program counter to the memory address register. This instruction fetches
1307:
564:
Complex digital processors may also employ more than one (possibly microcode-based)
6503:
6436:
6422:
6277:
6184:
6138:
5945:
5940:
5935:
5930:
5925:
5915:
5785:
5752:
5663:
5658:
5567:
5419:
5414:
5397:
5385:
5324:
4888:
4866:
4752:
4730:
4648:
4501:
4451:
4386:
4341:
4329:
4270:
3872:
3347:
3280:
3075:
3037:
3025:
3003:
2944:
2410:
1731:# To prepare for the next instruction, the instruction-decode microcode has already
1653:
1611:
1505:
1223:
1150:
1044:
798:
600:
361:
53:
3400:
3359:
2964:
1451:
1321:. In practice, the processor implements an instruction set architecture named the
6417:
6402:
6350:
6254:
6229:
6066:
6059:
5910:
5905:
5900:
5839:
5747:
5737:
5459:
5294:
5246:
5009:
4893:
4861:
4762:
4757:
4678:
4068:
Intel Patches All Recent CPUs, Promises Hardware Fixes For Upcoming 8th Gen Chips
3800:
3561:
The Digital Scientific Meta 4 Series 16 Computer System Preliminary System Manual
3528:
Digital Scientific Meta 4 Computer System Read-Only Memory (ROM) Reference Manual
3374:
2607:
2481:
2349:
2334:
2294:
2022:
1814:# Many CPUs have several ways to calculate the address, rather than just fetching
1584:
1471:
1444:
1433:
1422:
1385:
1146:
1031:
1011:
the problem of introducing higher-performance designs but still wanting to offer
987:
that allowed for more complex ISAs. By the mid-1970s, most new minicomputers and
713:
692:
460:
415:, and the microcode in a specific processor implementation is sometimes termed a
219:
115:
4560:
3244:
Field Engineering Theory of Operation, 2030 Processing Unit, System/360 Model 30
1516:. Such processors implemented microcode ROM and microcode SRAM in their silicon.
1051:
began examining huge volumes of performance data from their customer's 360 (and
403:
Housed in special high-speed memory, microcode translates machine instructions,
6528:
6362:
6345:
6338:
6234:
6091:
5828:
5742:
5673:
5256:
5218:
5167:
5162:
5157:
4871:
4695:
4595:
4356:
4313:
2420:
2262:
2000:
1847:
1737:# the target address of the jump instruction from the memory word following the
1639:
1615:
1565:
1558:
1467:
1125:
1121:
1023:
1003:
971:
893:
855:
790:
435:
193:
93:
4390:
3079:
2753:
1936:; there are also commercial machines that use writable microcode, such as the
1782:# The sequencer instruction is to jump to the start of the instruction decode.
1776:# This gives the memory system a clock tick to finish the fetch started on the
6569:
6548:
6323:
6239:
5279:
5261:
5054:
4747:
3868:
3338:
3137:
3063:
1721:# This is just a label, the ordinary way assemblers symbolically represent a
1588:
1408:
1314:
739:
From the 1940s to the late 1970s, a large portion of programming was done in
618:
481:
404:
5182:
4574:, March 2013, by Ben Hawkes, archived from the original on September 7, 2015
4333:
4274:
3351:
2555:"IBM pSeries Servers - Microcode Update for Ultrastar 73LZX (US73) 18/36 GB"
1746:# instruction to the memory data register for use by the instruction decode.
850:
Microprogramming also reduces the cost of field changes to correct defects (
6533:
6471:
6287:
6264:
6076:
5797:
4735:
4019:
3300:
3288:
2648:"ISO/IEC/IEEE 24765:2017(en) Systems and software engineering — Vocabulary"
2066:
2026:
1632:
1591:; that is, two registers can be read, and a third written at the same time.
999:, which included high-level instruction not unlike those found in the 360.
979:
882:
851:
752:
612:
565:
553:
542:
529:
377:
148:
68:
3629:
3041:
2483:
Encyclopedia of Computer Science and Technology: Volume 28 - Supplement 13
1820:# jump instruction, those CPUs have a family of related jump instructions.
1437:
1426:
1415:
1022:
Among the ultimate implementations of microcode in microprocessors is the
6318:
6282:
5993:
5965:
5823:
5678:
4601:
4148:
3304:
3284:
2844:(Technical report). MIT Servomechanisms Laboratory. R-127. Archived from
2778:
2435:
2326:
2290:
2014:
1817:# it from the word following the op-code. Therefore, rather than just one
1811:# to the exact processor being emulated. Even this example is simplified.
1624:
1341:
1248:
minicomputers are microprogrammed. The task of writing microcode for the
1157:
1093:
1088:
925:
909:
to describe this feature and distinguish it from a simple control store.
760:
747:
is entirely and directly executed by microcode, without compilation. The
587:
among different processors in a family, microcode only runs on the exact
505:
463:'s microcode often encompass updates to both its microcode and firmware.
408:
289:
270:
138:
133:
3678:"CS-323: High Performance Microprocessors – Chapter 1. Microprogramming"
3007:
2750:
Often denoted a ROM/PLA control store in the context of usage in a CPU;
6204:
6194:
6189:
6171:
6071:
6044:
5306:
5139:
5109:
4829:
4586:, 2002, by Alexander Wolfe, archived from the original on March 9, 2003
4455:
3127:"Part I / Common Architecture, Chapter 6 Common PALcode Architecture".
2388:
2258:
1960:
1941:
1843:
1628:
1536:
1520:
1334:
1052:
1016:
937:
918:
806:
775:
105:
3942:. Fourth Edition. IBM. September 1974. pp. 98, 245. GA22-7000-4.
3840:"Writable instruction set, stack oriented computers: The WISC Concept"
3419:
2281:
Microcode has been popular in application-specific processors such as
1486:
6295:
6034:
5104:
5082:
3462:
2589:"The central processing unit (CPU): Its components and functionality"
2430:
1956:
1855:
1839:
1644:
1129:
1084:
1007:
966:
929:
886:
552:
The lowest layer in a computer's software stack is traditionally raw
3495:
Digital Scientific Meta 4 Series 16 Computer System Reference Manual
2082:
1241:
processors with the exception of the PDP-11/20, are microprogrammed.
6310:
5129:
4582:
4568:(fixes the issues when running 32-bit virtual machines in PAE mode)
4512:
external links, and converting useful links where appropriate into
3393:
2425:
2399:
2367:
1463:
1456:
1354:
1330:
1179:
1172:
1056:
573:
569:
524:
509:
492:
455:
427:
143:
63:
4109:
1198:
units, but with an inductive pickup (Transformer Read-only Store).
5119:
5077:
3274:
2246:
2245:
The simpler non-RISC instructions (i.e., involving direct memory
2050:
2043:
1851:
1743:# This gives the memory system two clock ticks to fetch the next
1638:
Programmers develop microprograms, using basic software tools. A
1286:
1219:
1113:
1105:
516:, which differ only in where they look to find the two operands.
284:
240:
3277:"Implementation and Performance Evaluation of the PDP-11 Family"
1842:
processors and the CMOS microprocessors on later IBM mainframes
561:
prefix: microinstruction, microassembler, microprogrammer, etc.
5134:
5099:
5064:
4014:
2330:
2322:
2254:
2058:
2054:
1964:
1554:
1513:
1303:
operating system design makes extensive use of this capability.
1238:
1234:
992:
877:
520:
446:
265:
4196:"Model 990/12 LR Computer Depot Maintenance and Repair Manual"
1773:# This places the address of the next instruction into the PC.
1163:
Most models of the IBM System/360 series are microprogrammed:
622:
in the context of computers, which can be either read-only or
5592:
5124:
5094:
4590:
Opteron Exposed: Reverse Engineering AMD K8 Microcode Updates
4054:
3600:. Digital Scientific Corporation. January 1970. M4/005P-170.
3110:
3026:"Comments on "The Case for the Reduced Instruction Computer""
2353:
1282:
1277:
1230:
389:
316:
3184:
2717:
Manning, B.M.; Mitby, J.S; Nicholson, J.O. (November 1979).
1496:
processors are fully microcoded. x86 processors implemented
1066:
The result of this discovery was what is today known as the
6456:
5604:
5524:
5114:
3071:
2250:
2239:
2180:
2030:
1532:
1501:
1479:
1405:
1067:
744:
488:
312:
249:
244:
3458:"Postmortem: Angel Studios' Resident Evil 2 (N64 Version)"
3122:
3120:
5044:
5034:
2888:"The Best Way to Design an Automatic Calculating Machine"
2813:
2318:
2235:
2018:
1948:
1493:
1117:
996:
991:
were using microcode as well, such as most models of the
933:
782:
772:
638:
microinstruction might specify the following operations:
545:, where the holes represent which key should be pressed.
442:
393:
3869:"Re: What was the size of Microcode in various machines"
3675:
2926:"Simulating the IBM 360/50 mainframe from its microcode"
2205:
RISC has the following advantages over microcoded CISC:
1171:
loaded from the card reader, tape, or other device. The
3764:"PALcode for Alpha Microprocessors System Design Guide"
3117:
2875:
The Best Way to Design an Automatic Calculating Machine
27:
Layer of hardware-level instructions or data structures
3534:. Digital Scientific Corporation. March 1970. 7024MO.
1252:
is detailed in the Pulitzer Prize-winning book titled
1015:. Among early examples of microcode in micros was the
672:
Update the condition codes from the ALU status flags (
3805:. Springer Science & Business Media. p. 31.
3567:. Digital Scientific Corporation. June 1970. 7006MO.
3104:"Pentium Pro Processor At 150, 166, 180, and 200 MHz"
2716:
368:
serves as an intermediary layer situated between the
3501:. Digital Scientific Corporation. May 1971. 7032MO.
3024:
Clark, Douglas; Strecker, William (September 1980).
2719:"Microprogrammed Processor Having PLA Control Store"
2363:
1222:
is microprogrammed with hand wired ferrite cores (a
3334:"Design of a Small Business Data Processing System"
2194:and, what is far more important in modern systems,
2183:design philosophy started becoming more prominent.
1986:) that can be invoked from the console, as part of
1861:Another form of vertical microcode has two fields:
1718:# Any line starting with a number-sign is a comment
736:change. Thus, this greatly facilitated CPU design.
4414:
4370:Proceedings of the Cambridge Philosophical Society
4124:"[ports] Index of /head/sysutils/cpupdate"
4008:Stiller, Andreas; Paul, Matthias R. (1996-05-12).
3969:IBM System/360 Model 85 Functional Characteristics
3449:
3292:
3212:IBM System/360 Model 25 Functional Characteristics
2806:IBM System/360 Model 50 Functional Characteristics
1959:L- and G-machines, a number of IBM System/360 and
1393:Further information on Nintendo 64 microcode:
576:has both a microcoded IBox and a microcoded EBox.
512:has eight variations of the addition instruction,
4496:may not follow Knowledge's policies or guidelines
4465:"How the 8086 processor's microcode engine works"
2987:Cocke, John; Markstein, Victoria (January 1990).
2630:"How the 8086 processor's microcode engine works"
2480:Kent, Allen; Williams, James G. (April 5, 1993).
6546:
4296:
4257:"A Historical Overview of Computer Architecture"
2524:The microarchitecture of Intel, AMD and VIA CPUs
2333:. decode instructions into dynamically buffered
954:the end of the decade, the use of microcode was
4081:"Download Linux* Processor Microcode Data File"
3372:
2683:. May 1990. pp. 3-5–3-32. EK-KA90S-TD-001.
1648:program is similar to those used to optimize a
4355:
3997:. First Edition. IBM. March 1969. GA27-2733-0.
3250:(First ed.). IBM. June 1967. Y24-3360-1.
3237:
3235:
3233:
3064:"The execution pipeline of the Intel i486 CPU"
2986:
2696:VAX 8800 System Technical Description Volume 2
2072:
2046:, Microsoft Windows, or the motherboard BIOS.
2034:vulnerabilities discovered in their designs –
1974:The IBM System/370 includes a facility called
4617:
3847:The Journal of Forth Application and Research
3023:
2965:"Design Philosophy Behind Motorola's MC68000"
2025:. This, for example, has allowed bugs in the
341:
4001:
3975:. SECOND EDITION. IBM. June 1968. A22-6916-1
3366:
3295:Computer Structures: Principles and Examples
3275:Edward A. Snow; Daniel P. Siewiorek (1982).
2834:
2479:
1175:emulation for this model is loaded this way.
789:(CISC). An alternate approach, used in many
519:Using the variation of the instruction, or "
5622:Computer performance by orders of magnitude
4007:
3735:"The What and Why of zEnterprise Millicode"
3230:
3218:. IBM. January 1968. p. 22. A24-3510-0
3163:"The What and Why of zEnterprise Millicode"
3019:
3017:
2623:
2621:
2529:(Report). Technical University of Denmark.
2352:, and special-purpose instructions such as
2111:. Unsourced material may be challenged and
1933:
388:components. While microcode is utilized in
4631:
4624:
4610:
4106:"Intel Microcode Update Utility for Linux"
2517:
2515:
2475:
2473:
2471:
1932:Many experimental prototype computers use
1124:CPUs, starting with the G4 processor, and
372:(CPU) hardware and the programmer-visible
348:
334:
4566:Intel processor microcode security update
4532:Learn how and when to remove this message
4417:Microprogramming Principles and Practices
3676:Neal Harman; Andy Gimblett (2009-10-12).
2989:"The evolution of RISC technology at IBM"
2317:Modern CISC implementations, such as the
2131:Learn how and when to remove this message
1902:
4578:Hole seen in Intel's bug-busting feature
4462:
3427:"Indiana Jones and the Infernal Machine"
3014:
2618:
1925:. Such a computer is sometimes called a
965:
3912:"CPSC 3300 / The Soul of a New Machine"
3837:
3455:
3437:from the original on September 27, 2013
3407:from the original on September 13, 2007
3130:Alpha AXP Architecture Reference Manual
2996:IBM Journal of Research and Development
2982:
2980:
2978:
2962:
2512:
2468:
1674:
1395:Nintendo 64 programming characteristics
1002:The same basic evolution occurred with
14:
6547:
4435:
4412:
4312:
3936:IBM System/370 Principles of Operation
3909:
3819:from the original on November 20, 2016
3798:
3733:Rogers, Bob (September–October 2012).
3732:
3705:
3653:Computer Architecture and Organization
3331:
3160:
2942:
2919:
2917:
2895:The early British computer conferences
2885:
2872:
2751:
2500:from the original on November 20, 2016
1525:wireless network interface controllers
1360:Indiana Jones and the Infernal Machine
995:and, most notably, most models of the
970:The microcode (and "nanocode") of the
4605:
4438:"Microprogram control for SYSTEM/360"
4299:"A Brief History of Microprogramming"
4254:
4044:"9.11: Microcode update facilities".
3866:
3650:
3474:from the original on October 21, 2012
3401:"Interview: Battling the N64 (Naboo)"
2673:VAX 9000 System Technical Description
2582:
2580:
1829:
1348:(RCP), which serves as the console's
961:
695:address for the next microinstruction
532:, another unit within the processor.
430:more robust architectures with wider
5593:Floating-point operations per second
4476:
3891:from the original on 26 January 2009
3780:from the original on August 15, 2011
2975:
2923:
2627:
2586:
2142:
2109:adding citations to reliable sources
2076:
1614:. Together, these elements form an "
1404:The VU0 and VU1 vector units in the
669:Store the result value in register 8
579:A high-level programmer, or even an
426:of smaller scale and simplicity can
422:Through extensive microprogramming,
4561:A Brief History of Microprogramming
2914:
2838:Whirlwind I Computer Block Diagrams
2835:Everett, R.R.; Swain, F.E. (1947).
2605:
2521:
2312:
1337:systems used the same architecture.
615:. This is traditionally denoted as
471:
24:
4322:Annals of the History of Computing
4262:Annals of the History of Computing
4248:
4180:. January 24, 2013. Archived from
3885:qhn0qyveyu.fsf@ruckus.brouhaha.com
3191:from the original on June 12, 2010
2785:from the original on March 4, 2016
2577:
2201:When designing a new processor, a
1659:Microcode can be characterized as
1323:Internal Microprogrammed Interface
1229:The Digital Equipment Corporation
1073:University of California, Berkeley
299:Notable compilers & toolchains
25:
6581:
4546:Writable Instruction Set Computer
4472:
4318:"The Genesis of Microprogramming"
4297:Smotherman, Mark (October 2022).
4018:. Trends & News (in German).
4015:c't – magazin für computertechnik
3799:Spruth, Wilhelm (December 2012).
3376:Inside the AS/400, Second Edition
2723:IBM Technical Disclosure Bulletin
2229:There are counterpoints as well:
1996:) or from another processor in a
1927:writable instruction set computer
1913:A few computers were built using
1543:
1319:horizontal and vertical microcode
1153:to store its internal procedures.
1151:pegs inserted into rotating drums
1075:, that introduced the term RISC.
866:
666:Set the ALU's carry input to zero
376:of a computer, also known as its
30:For the CAD software vendor, see
6519:Semiconductor device fabrication
4572:Notes on Intel Microcode Updates
4481:
4070:by Paul Alcorn on March 15, 2018
3867:Smith, Eric (3 September 2002).
3856:from the original on 2008-05-11.
3332:Soltis, Frank (September 1981).
2752:Supnik, Bob (24 February 2008).
2486:. New York: Marcel Dekker, Inc.
2366:
2147:
2081:
1132:to implement some instructions.
896:enhanced this concept by adding
881:methods. The control store is a
787:complex instruction set computer
707:
629:
6494:History of general-purpose CPUs
4721:Nondeterministic Turing machine
4463:Shirriff, Ken (December 2022).
4217:
4188:
4166:
4155:from the original on 2008-02-23
4141:
4130:from the original on 2020-04-01
4116:
4098:
4073:
4061:
4037:
4026:from the original on 2017-08-28
3987:
3960:
3949:from the original on 2012-02-29
3927:
3903:
3860:
3831:
3792:
3756:
3726:
3699:
3669:
3644:
3618:
3607:from the original on 2020-03-24
3585:
3574:from the original on 2019-09-23
3552:
3541:from the original on 2019-09-23
3519:
3508:from the original on 2020-01-14
3486:
3456:Meynink, Todd (July 28, 2000).
3325:
3268:
3257:from the original on 2020-04-01
3203:
3177:
3154:
3096:
3056:
2956:
2936:
2893:. In Campbell-Kelly, M. (ed.).
2863:
2828:
2797:
2771:
2760:from the original on 2011-07-09
2744:
2733:from the original on 2012-10-01
2710:
2536:from the original on 2017-03-28
2449:
958:across the mainframe industry.
441:Some hardware vendors, notably
4674:Deterministic finite automaton
3802:The Design of a Microprocessor
3712:. KIT Scientific. p. 26.
2963:Starnes, Thomas (April 1983).
2687:
2664:
2640:
2599:
2547:
1108:to implement features such as
1037:
13:
1:
5465:Simultaneous and heterogenous
3771:Digital Equipment Corporation
3628:. AntiqueTech. Archived from
2897:. MIT Press. pp. 182–4.
2816:. 1967. p. 7. A22-6898-1
2706:. July 1986. EK-KA882-TD-PRE.
2704:Digital Equipment Corporation
2681:Digital Equipment Corporation
2462:
2299:network interface controllers
1858:on IBM mainframe processors.
1194:dedicated readers similar to
780:Digital Equipment Corporation
6149:Integrated memory controller
6131:Translation lookaside buffer
5330:Memory dependence prediction
4773:Random-access stored program
4726:Probabilistic Turing machine
3838:Koopman, Philip Jr. (1987).
3655:. McGraw-Hill. p. 300.
3403:. IGN64. November 10, 2000.
3161:Rogers, Bob (Sep–Oct 2012).
2587:Both, David (23 July 2020).
1969:Data General Eclipse MV/8000
1779:# previous microinstruction.
1317:is described as having both
1110:translation lookaside buffer
535:
374:instruction set architecture
256:target-specific initializer)
7:
5605:Synaptic updates per second
4556:Transformer Read-only Store
2946:VLSI VAX Micro-Architecture
2359:
2073:Comparison to VLIW and RISC
1372:Star Wars: Battle for Naboo
1135:
871:In 1947, the design of the
816:
609:static random-access memory
466:
83:Intermediate representation
32:MicroCode Engineering, Inc.
10:
6586:
6009:Heterogeneous architecture
4931:Orthogonal instruction set
4701:Alternating Turing machine
4689:Quantum cellular automaton
4255:Smith, Richard E. (1988).
2348:or unusual values such as
2225:for increased performance.
1963:implementations, some DEC
1906:
1610:, used to access the main
1510:Intel P6 microarchitecture
1392:
1028:orthogonal instruction set
916:
912:
861:
749:IBM Future Systems project
652:Connect register 7 to the
642:Connect register 1 to the
29:
6499:Microprocessor chronology
6486:
6462:Dynamic frequency scaling
6435:
6371:
6309:
6263:
6215:
6170:
6090:
6017:
5986:
5891:
5812:
5776:
5730:
5630:
5617:Cache performance metrics
5556:
5490:
5440:
5351:
5342:
5315:
5270:
5237:
5209:
5200:
5020:
4923:
4912:
4783:
4639:
4551:Capacitor Read-only Store
4391:10.1017/S0305004100028322
3468:United Business Media LLC
3080:10.1109/CMPCON.1990.63682
2522:Fog, Agner (2017-05-02).
2321:family starting with the
2309:, and in other hardware.
2307:graphics processing units
2287:digital signal processors
2156:This section needs to be
1976:Initial-Microprogram Load
1698:Arithmetic and logic unit
1596:arithmetic and logic unit
1581:general-purpose registers
1366:Star Wars: Rogue Squadron
1255:The Soul of a New Machine
1233:processor, KL10 and KS10
594:
513:
6514:Hardware security module
5857:Digital signal processor
5834:Graphics processing unit
5646:Graphics processing unit
4237:: CS1 maint: location (
3373:Frank G. Soltis (1997).
3305:McGraw-Hill Book Company
2943:Supnik, Bob (May 1988).
2886:Wilkes, Maurice (1989).
2879:University of Manchester
2873:Wilkes, Maurice (1951).
2442:
2346:transcendental functions
2303:flash memory controllers
1885:cycles per instruction.
1854:on Alpha processors and
1715:
1650:programmable logic array
1514:AMD K7 microarchitecture
1489:, a cost-reduced PDP-11.
1452:Digital Scientific Corp.
1350:graphics processing unit
1026:. This offered a highly
795:programmable logic array
793:, is to use one or more
605:programmable logic array
6565:Central processing unit
6467:Dynamic voltage scaling
6250:Memory address register
6144:Branch target predictor
6108:Address generation unit
5851:Physics processing unit
5640:Central processing unit
5599:Transactions per second
5587:Instructions per second
5510:Array processing (SIMT)
4654:Stored-program computer
4334:10.1109/MAHC.1986.10035
4275:10.1109/MAHC.1988.10039
3706:Vaupel, Robert (2013).
3651:Hayes, John P. (1978).
3352:10.1109/C-M.1981.220610
2383:Address generation unit
1938:Burroughs Small Systems
1934:writable control stores
1604:memory address register
1030:with a wide variety of
659:Set the ALU to perform
370:central processing unit
307:GNU Compiler Collection
232:Common Language Runtime
6555:Instruction processing
6273:Hardwired control unit
6155:Memory management unit
6120:Memory management unit
5869:Secure cryptoprocessor
5863:Tensor Processing Unit
5845:Vision processing unit
5579:Cycles per instruction
5573:Instructions per cycle
5520:Associative processing
5211:Instruction pipelining
4633:Processor technologies
3877:alt.folklore.computers
3626:"Western Digital 1600"
3185:"EMIDEC 1100 computer"
1919:writable control store
1909:Writable control store
1903:Writable control store
1333:processor line, early
1013:backward compatibility
975:
900:, a concept akin to a
585:backward compatibility
398:hardwired control unit
162:Compilation strategies
6356:Sum-addressed decoder
6102:Arithmetic logic unit
5229:Classic RISC pipeline
5183:Epiphany architecture
5030:Motorola 68000 series
4436:Tucker, S.G. (1967).
4413:Husson, S.S. (1970).
4184:on September 1, 2014.
3433:. December 12, 2000.
3070:. San Francisco, CA:
3042:10.1145/641914.641918
969:
898:conditional execution
768:instruction fetches.
757:memory block transfer
691:Microjump to a given
478:arithmetic logic unit
453:interchangeably with
400:is unable to manage.
187:Compile and go system
6477:Performance per watt
6055:replacement policies
5721:Package on a package
5611:Performance per watt
5515:Pipelined processing
5285:Tomasulo's algorithm
5090:Clipper architecture
4946:Application-specific
4659:Finite-state machine
4502:improve this article
4010:"ProzessorgeflĂĽster"
3739:IBM Systems Magazine
3167:IBM Systems Magazine
2952:. Digital Equipment.
2877:(Technical report).
2416:Instruction pipeline
2394:Finite-state machine
2105:improve this section
2063:Varian Data Machines
1694:Destination register
1675:Horizontal microcode
1608:memory data register
1602:There may also be a
1570:instruction register
1399:Nintendo 64 Game Pak
1265:are microprogrammed:
1246:Data General Eclipse
589:electronic circuitry
497:programming language
434:lengths, additional
382:finite-state machine
260:Java virtual machine
182:Tracing just-in-time
6509:Digital electronics
6162:Instruction decoder
6114:Floating-point unit
5768:Soft microprocessor
5715:System in a package
5290:Reservation station
4820:Transport-triggered
4514:footnote references
4443:IBM Systems Journal
4383:1953PCPS...49..230W
4205:. Texas Instruments
3281:Daniel P. Siewiorek
3173:on October 9, 2012.
3136:(Second ed.).
3008:10.1147/rd.341.0004
2930:Ken Shirriff's blog
2634:Ken Shirriff's blog
2608:"NMOS 6502 Opcodes"
2405:Floating-point unit
2343:floating-point unit
2291:channel controllers
2021:CPUs have writable
1669:combinatorial logic
1498:patchable microcode
1414:The MicroCore Labs
1346:Reality Coprocessor
1120:architecture. CMOS
985:integrated circuits
947:floating point unit
836:System/360 Model 40
828:System/360 Model 30
809:-level simulation.
803:MOS Technology 6502
724:and rather minimal
722:combinational logic
384:sequencing in many
76:Optimizing compiler
6381:Integrated circuit
6225:Processor register
5879:Baseband processor
5224:Operand forwarding
4684:Cellular automaton
4456:10.1147/sj.64.0222
4377:(pt. 2): 230–238.
3910:Smotherman, Mark.
2374:Electronics portal
2283:network processors
2013:Starting with the
1967:machines, and the
1944:workstations, the
1915:writable microcode
1830:Vertical microcode
1806:InstructionDecode
1476:Pascal MicroEngine
1443:2018-12-21 at the
1432:2017-02-02 at the
1421:2016-11-03 at the
1379:playback found in
1261:Many systems from
989:superminicomputers
976:
962:Moving up the line
765:multi-level caches
424:microarchitectures
386:digital processing
6542:
6541:
6431:
6430:
6050:Instruction cache
6040:Scratchpad memory
5887:
5886:
5874:Network processor
5803:Network on a chip
5758:Ultra-low-voltage
5709:Multi-chip module
5552:
5551:
5338:
5337:
5325:Branch prediction
5302:Register renaming
5196:
5195:
5178:VISC architecture
5000:Quantum computing
4995:VISC architecture
4877:Secondary storage
4793:Microarchitecture
4753:Register machines
4542:
4541:
4534:
4421:. Prentice-Hall.
4057:. September 2016.
3812:978-3-642-74916-2
3719:978-3-7315-0022-3
3632:on 3 January 2017
3187:. Emidec.org.uk.
2904:978-0-262-23136-7
2565:on April 19, 2019
2203:hardwired control
2192:interrupt latency
2177:
2176:
2141:
2140:
2133:
2017:in 1995, several
1874:
1873:
1724:# memory address.
1710:
1709:
1691:Register source B
1688:Register source A
1377:full motion video
1327:Machine Interface
1143:Analytical engine
741:assembly language
624:read–write memory
581:assembly language
358:
357:
40:Program execution
16:(Redirected from
6577:
6504:Processor design
6396:Power management
6278:Instruction unit
6139:Branch predictor
6088:
6087:
5786:System on a chip
5728:
5727:
5568:Transistor count
5492:Flynn's taxonomy
5349:
5348:
5207:
5206:
5010:Addressing modes
4921:
4920:
4867:Memory hierarchy
4731:Hypercomputation
4649:Abstract machine
4626:
4619:
4612:
4603:
4602:
4537:
4530:
4526:
4523:
4517:
4485:
4484:
4477:
4468:
4459:
4432:
4420:
4409:
4407:
4405:
4352:
4350:
4348:
4309:
4307:
4305:
4293:
4291:
4289:
4243:
4242:
4236:
4228:
4221:
4215:
4214:
4212:
4210:
4200:
4192:
4186:
4185:
4170:
4164:
4163:
4161:
4160:
4145:
4139:
4138:
4136:
4135:
4120:
4114:
4113:
4108:. Archived from
4102:
4096:
4095:
4093:
4092:
4083:. Archived from
4077:
4071:
4065:
4059:
4058:
4052:
4041:
4035:
4034:
4032:
4031:
4005:
3999:
3998:
3991:
3985:
3984:
3982:
3980:
3974:
3964:
3958:
3957:
3955:
3954:
3948:
3941:
3931:
3925:
3924:
3919:
3918:
3907:
3901:
3900:
3898:
3896:
3864:
3858:
3857:
3855:
3844:
3835:
3829:
3828:
3826:
3824:
3796:
3790:
3789:
3787:
3785:
3779:
3768:
3760:
3754:
3753:
3751:
3750:
3741:. Archived from
3730:
3724:
3723:
3703:
3697:
3696:
3694:
3693:
3684:. Archived from
3673:
3667:
3666:
3648:
3642:
3641:
3639:
3637:
3622:
3616:
3615:
3613:
3612:
3606:
3599:
3589:
3583:
3582:
3580:
3579:
3573:
3566:
3556:
3550:
3549:
3547:
3546:
3540:
3533:
3523:
3517:
3516:
3514:
3513:
3507:
3500:
3490:
3484:
3483:
3481:
3479:
3453:
3447:
3446:
3444:
3442:
3423:
3417:
3416:
3414:
3412:
3397:
3391:
3390:
3370:
3364:
3363:
3329:
3323:
3322:
3298:
3272:
3266:
3265:
3263:
3262:
3256:
3249:
3239:
3228:
3227:
3225:
3223:
3217:
3207:
3201:
3200:
3198:
3196:
3181:
3175:
3174:
3169:. Archived from
3158:
3152:
3151:
3135:
3124:
3115:
3114:
3113:. November 1995.
3108:
3100:
3094:
3093:
3060:
3054:
3053:
3021:
3012:
3011:
2993:
2984:
2973:
2972:
2960:
2954:
2953:
2951:
2940:
2934:
2933:
2921:
2912:
2908:
2892:
2882:
2867:
2861:
2860:
2858:
2856:
2851:on June 17, 2012
2850:
2843:
2832:
2826:
2825:
2823:
2821:
2811:
2801:
2795:
2794:
2792:
2790:
2775:
2769:
2768:
2766:
2765:
2748:
2742:
2741:
2739:
2738:
2714:
2708:
2707:
2701:
2691:
2685:
2684:
2678:
2668:
2662:
2661:
2659:
2658:
2644:
2638:
2637:
2625:
2616:
2615:
2603:
2597:
2596:
2584:
2575:
2574:
2572:
2570:
2561:. Archived from
2551:
2545:
2544:
2542:
2541:
2535:
2528:
2519:
2510:
2509:
2507:
2505:
2477:
2456:
2453:
2411:Pentium FDIV bug
2376:
2371:
2370:
2350:denormal numbers
2335:micro-operations
2313:Micro-operations
2295:disk controllers
2172:
2169:
2163:
2151:
2150:
2143:
2136:
2129:
2125:
2122:
2116:
2085:
2077:
1864:
1863:
1821:
1818:
1815:
1812:
1809:
1805:
1801:
1797:
1793:
1790:
1787:
1783:
1780:
1777:
1774:
1770:
1766:
1762:
1758:
1754:
1750:
1747:
1744:
1741:
1738:
1735:
1732:
1729:
1725:
1722:
1719:
1685:
1684:
1654:read-only memory
1612:computer storage
1539:of a video card.
1506:operating system
1237:processors, and
1047:, a team led by
1045:telephone switch
1032:addressing modes
907:microprogramming
799:read-only memory
761:memory pre-fetch
714:instruction sets
661:two's-complement
601:read-only memory
515:
472:Instruction sets
413:microprogramming
362:processor design
350:
343:
336:
212:Notable runtimes
199:Transcompilation
46:General concepts
36:
35:
21:
18:Microprogramming
6585:
6584:
6580:
6579:
6578:
6576:
6575:
6574:
6545:
6544:
6543:
6538:
6524:Tick–tock model
6482:
6438:
6427:
6367:
6351:Address decoder
6305:
6259:
6255:Program counter
6230:Status register
6211:
6166:
6126:Load–store unit
6093:
6086:
6013:
5982:
5883:
5840:Image processor
5815:
5808:
5778:
5772:
5748:Microcontroller
5738:Embedded system
5726:
5626:
5559:
5548:
5486:
5436:
5334:
5311:
5295:Re-order buffer
5266:
5247:Data dependency
5233:
5192:
5022:
5016:
4915:
4914:Instruction set
4908:
4894:Multiprocessing
4862:Cache hierarchy
4855:Register/memory
4779:
4679:Queue automaton
4635:
4630:
4598:, July 26, 2022
4592:, July 26, 2004
4538:
4527:
4521:
4518:
4499:
4490:This article's
4486:
4482:
4475:
4429:
4403:
4401:
4361:Stringer, J. B.
4346:
4344:
4303:
4301:
4287:
4285:
4251:
4249:Further reading
4246:
4230:
4229:
4223:
4222:
4218:
4208:
4206:
4198:
4194:
4193:
4189:
4172:
4171:
4167:
4158:
4156:
4147:
4146:
4142:
4133:
4131:
4126:. Freebsd.org.
4122:
4121:
4117:
4104:
4103:
4099:
4090:
4088:
4079:
4078:
4074:
4066:
4062:
4050:
4043:
4042:
4038:
4029:
4027:
4006:
4002:
3993:
3992:
3988:
3978:
3976:
3972:
3966:
3965:
3961:
3952:
3950:
3946:
3939:
3933:
3932:
3928:
3916:
3914:
3908:
3904:
3894:
3892:
3865:
3861:
3853:
3842:
3836:
3832:
3822:
3820:
3813:
3797:
3793:
3783:
3781:
3777:
3766:
3762:
3761:
3757:
3748:
3746:
3731:
3727:
3720:
3704:
3700:
3691:
3689:
3674:
3670:
3663:
3649:
3645:
3635:
3633:
3624:
3623:
3619:
3610:
3608:
3604:
3597:
3591:
3590:
3586:
3577:
3575:
3571:
3564:
3558:
3557:
3553:
3544:
3542:
3538:
3531:
3525:
3524:
3520:
3511:
3509:
3505:
3498:
3492:
3491:
3487:
3477:
3475:
3454:
3450:
3440:
3438:
3425:
3424:
3420:
3410:
3408:
3399:
3398:
3394:
3387:
3371:
3367:
3330:
3326:
3319:
3273:
3269:
3260:
3258:
3254:
3247:
3241:
3240:
3231:
3221:
3219:
3215:
3209:
3208:
3204:
3194:
3192:
3183:
3182:
3178:
3159:
3155:
3148:
3133:
3126:
3125:
3118:
3106:
3102:
3101:
3097:
3090:
3062:
3061:
3057:
3022:
3015:
2991:
2985:
2976:
2961:
2957:
2949:
2941:
2937:
2924:Shirriff, Ken.
2922:
2915:
2911:
2905:
2890:
2868:
2864:
2854:
2852:
2848:
2841:
2833:
2829:
2819:
2817:
2809:
2803:
2802:
2798:
2788:
2786:
2777:
2776:
2772:
2763:
2761:
2749:
2745:
2736:
2734:
2715:
2711:
2699:
2693:
2692:
2688:
2676:
2670:
2669:
2665:
2656:
2654:
2646:
2645:
2641:
2628:Shirriff, Ken.
2626:
2619:
2606:Pickens, John.
2604:
2600:
2585:
2578:
2568:
2566:
2553:
2552:
2548:
2539:
2537:
2533:
2526:
2520:
2513:
2503:
2501:
2494:
2478:
2469:
2465:
2460:
2459:
2454:
2450:
2445:
2440:
2372:
2365:
2362:
2315:
2173:
2167:
2164:
2161:
2152:
2148:
2137:
2126:
2120:
2117:
2102:
2086:
2075:
2023:Intel Microcode
1998:tightly coupled
1911:
1905:
1832:
1823:
1822:
1819:
1816:
1813:
1810:
1807:
1803:
1799:
1795:
1791:
1788:
1785:
1781:
1778:
1775:
1772:
1768:
1764:
1760:
1756:
1752:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1726:InstructionJUMP
1723:
1720:
1717:
1677:
1618:". Most modern
1585:program counter
1546:
1535:, for example,
1472:Western Digital
1445:Wayback Machine
1434:Wayback Machine
1423:Wayback Machine
1401:
1386:Resident Evil 2
1250:Eclipse MV/8000
1147:Charles Babbage
1138:
1040:
1004:microprocessors
964:
921:
915:
869:
864:
819:
791:microprocessors
710:
656:side of the ALU
632:
597:
538:
474:
469:
461:hard disk drive
449:, use the term
436:execution units
354:
234:(CLR) and
220:Android Runtime
116:Virtual machine
34:
28:
23:
22:
15:
12:
11:
5:
6583:
6573:
6572:
6567:
6562:
6557:
6540:
6539:
6537:
6536:
6531:
6529:Pin grid array
6526:
6521:
6516:
6511:
6506:
6501:
6496:
6490:
6488:
6484:
6483:
6481:
6480:
6474:
6469:
6464:
6459:
6454:
6449:
6443:
6441:
6433:
6432:
6429:
6428:
6426:
6425:
6420:
6415:
6410:
6405:
6400:
6399:
6398:
6393:
6388:
6377:
6375:
6369:
6368:
6366:
6365:
6363:Barrel shifter
6360:
6359:
6358:
6353:
6346:Binary decoder
6343:
6342:
6341:
6331:
6326:
6321:
6315:
6313:
6307:
6306:
6304:
6303:
6298:
6290:
6285:
6280:
6275:
6269:
6267:
6261:
6260:
6258:
6257:
6252:
6247:
6242:
6237:
6235:Stack register
6232:
6227:
6221:
6219:
6213:
6212:
6210:
6209:
6208:
6207:
6202:
6192:
6187:
6182:
6176:
6174:
6168:
6167:
6165:
6164:
6159:
6158:
6157:
6146:
6141:
6136:
6135:
6134:
6128:
6117:
6111:
6105:
6098:
6096:
6085:
6084:
6079:
6074:
6069:
6064:
6063:
6062:
6057:
6052:
6047:
6042:
6037:
6027:
6021:
6019:
6015:
6014:
6012:
6011:
6006:
6001:
5996:
5990:
5988:
5984:
5983:
5981:
5980:
5979:
5978:
5968:
5963:
5958:
5953:
5948:
5943:
5938:
5933:
5928:
5923:
5918:
5913:
5908:
5903:
5897:
5895:
5889:
5888:
5885:
5884:
5882:
5881:
5876:
5871:
5866:
5860:
5854:
5848:
5842:
5837:
5831:
5829:AI accelerator
5826:
5820:
5818:
5810:
5809:
5807:
5806:
5800:
5795:
5792:Multiprocessor
5789:
5782:
5780:
5774:
5773:
5771:
5770:
5765:
5760:
5755:
5750:
5745:
5743:Microprocessor
5740:
5734:
5732:
5731:By application
5725:
5724:
5718:
5712:
5706:
5701:
5696:
5691:
5686:
5681:
5676:
5674:Tile processor
5671:
5666:
5661:
5656:
5655:
5654:
5643:
5636:
5634:
5628:
5627:
5625:
5624:
5619:
5614:
5608:
5602:
5596:
5590:
5584:
5583:
5582:
5570:
5564:
5562:
5554:
5553:
5550:
5549:
5547:
5546:
5545:
5544:
5534:
5529:
5528:
5527:
5522:
5517:
5512:
5502:
5496:
5494:
5488:
5487:
5485:
5484:
5479:
5474:
5469:
5468:
5467:
5462:
5460:Hyperthreading
5452:
5446:
5444:
5442:Multithreading
5438:
5437:
5435:
5434:
5429:
5424:
5423:
5422:
5412:
5411:
5410:
5405:
5395:
5394:
5393:
5388:
5378:
5373:
5372:
5371:
5366:
5355:
5353:
5346:
5340:
5339:
5336:
5335:
5333:
5332:
5327:
5321:
5319:
5313:
5312:
5310:
5309:
5304:
5299:
5298:
5297:
5292:
5282:
5276:
5274:
5268:
5267:
5265:
5264:
5259:
5254:
5249:
5243:
5241:
5235:
5234:
5232:
5231:
5226:
5221:
5219:Pipeline stall
5215:
5213:
5204:
5198:
5197:
5194:
5193:
5191:
5190:
5185:
5180:
5175:
5172:
5171:
5170:
5168:z/Architecture
5165:
5160:
5155:
5147:
5142:
5137:
5132:
5127:
5122:
5117:
5112:
5107:
5102:
5097:
5092:
5087:
5086:
5085:
5080:
5075:
5067:
5062:
5057:
5052:
5047:
5042:
5037:
5032:
5026:
5024:
5018:
5017:
5015:
5014:
5013:
5012:
5002:
4997:
4992:
4987:
4982:
4977:
4972:
4971:
4970:
4960:
4959:
4958:
4948:
4943:
4938:
4933:
4927:
4925:
4918:
4910:
4909:
4907:
4906:
4901:
4896:
4891:
4886:
4881:
4880:
4879:
4874:
4872:Virtual memory
4864:
4859:
4858:
4857:
4852:
4847:
4842:
4832:
4827:
4822:
4817:
4812:
4811:
4810:
4800:
4795:
4789:
4787:
4781:
4780:
4778:
4777:
4776:
4775:
4770:
4765:
4760:
4750:
4745:
4740:
4739:
4738:
4733:
4728:
4723:
4718:
4713:
4708:
4703:
4696:Turing machine
4693:
4692:
4691:
4686:
4681:
4676:
4671:
4666:
4656:
4651:
4645:
4643:
4637:
4636:
4629:
4628:
4621:
4614:
4606:
4600:
4599:
4593:
4587:
4575:
4569:
4563:
4558:
4553:
4548:
4540:
4539:
4494:external links
4489:
4487:
4480:
4474:
4473:External links
4471:
4470:
4469:
4460:
4450:(4): 222–241.
4433:
4427:
4410:
4363:(April 1953).
4353:
4328:(2): 116–126.
4310:
4294:
4269:(4): 277–303.
4250:
4247:
4245:
4244:
4216:
4187:
4165:
4140:
4115:
4112:on 2012-02-26.
4097:
4072:
4060:
4036:
4000:
3986:
3959:
3926:
3902:
3859:
3830:
3811:
3791:
3755:
3725:
3718:
3698:
3668:
3661:
3643:
3617:
3584:
3551:
3518:
3485:
3448:
3418:
3392:
3386:978-1882419661
3385:
3379:. Duke Press.
3365:
3324:
3317:
3285:C. Gordon Bell
3267:
3229:
3202:
3176:
3153:
3146:
3116:
3095:
3088:
3055:
3013:
2974:
2955:
2935:
2913:
2910:
2909:
2903:
2883:
2869:
2862:
2827:
2796:
2770:
2743:
2709:
2686:
2663:
2639:
2617:
2598:
2576:
2546:
2511:
2492:
2466:
2464:
2461:
2458:
2457:
2447:
2446:
2444:
2441:
2439:
2438:
2433:
2428:
2423:
2421:Microsequencer
2418:
2413:
2408:
2402:
2397:
2391:
2386:
2379:
2378:
2377:
2361:
2358:
2314:
2311:
2273:Many RISC and
2271:
2270:
2266:
2263:Motorola 68040
2243:
2227:
2226:
2219:
2216:
2213:
2210:
2175:
2174:
2155:
2153:
2146:
2139:
2138:
2089:
2087:
2080:
2074:
2071:
2001:multiprocessor
1989:power-on reset
1955:) family, the
1907:Main article:
1904:
1901:
1872:
1871:
1868:
1848:z/Architecture
1831:
1828:
1716:
1708:
1707:
1704:
1701:
1695:
1692:
1689:
1676:
1673:
1640:microassembler
1616:execution unit
1600:
1599:
1592:
1573:
1566:microsequencer
1562:
1545:
1544:Implementation
1542:
1541:
1540:
1517:
1490:
1468:microprocessor
1460:
1448:
1412:
1391:
1390:
1338:
1311:
1304:
1293:
1292:
1291:
1290:
1274:
1267:
1266:
1259:
1242:
1227:
1216:
1215:
1214:
1206:
1199:
1184:
1176:
1161:
1154:
1145:envisioned by
1137:
1134:
1126:z/Architecture
1122:IBM System/390
1039:
1036:
1024:Motorola 68000
972:Motorola 68000
963:
960:
936:in their 1964
917:Main article:
914:
911:
894:Maurice Wilkes
868:
867:Early examples
865:
863:
860:
856:hardware logic
818:
815:
709:
706:
697:
696:
689:
670:
667:
664:
657:
650:
631:
628:
596:
593:
537:
534:
473:
470:
468:
465:
356:
355:
353:
352:
345:
338:
330:
327:
326:
325:
324:
319:
310:
301:
300:
296:
295:
294:
293:
287:
278:
268:
263:
257:
247:
238:
229:
223:
214:
213:
209:
208:
207:
206:
201:
196:
194:Precompilation
191:
190:
189:
184:
173:
164:
163:
159:
158:
157:
156:
151:
146:
141:
136:
128:
127:
123:
122:
121:
120:
119:
118:
113:
108:
103:
102:
101:
94:Runtime system
86:
80:
79:
78:
73:
72:
71:
56:
48:
47:
43:
42:
26:
9:
6:
4:
3:
2:
6582:
6571:
6568:
6566:
6563:
6561:
6558:
6556:
6553:
6552:
6550:
6535:
6532:
6530:
6527:
6525:
6522:
6520:
6517:
6515:
6512:
6510:
6507:
6505:
6502:
6500:
6497:
6495:
6492:
6491:
6489:
6485:
6478:
6475:
6473:
6470:
6468:
6465:
6463:
6460:
6458:
6455:
6453:
6450:
6448:
6445:
6444:
6442:
6440:
6434:
6424:
6421:
6419:
6416:
6414:
6411:
6409:
6406:
6404:
6401:
6397:
6394:
6392:
6389:
6387:
6384:
6383:
6382:
6379:
6378:
6376:
6374:
6370:
6364:
6361:
6357:
6354:
6352:
6349:
6348:
6347:
6344:
6340:
6337:
6336:
6335:
6332:
6330:
6327:
6325:
6324:Demultiplexer
6322:
6320:
6317:
6316:
6314:
6312:
6308:
6302:
6299:
6297:
6294:
6291:
6289:
6286:
6284:
6281:
6279:
6276:
6274:
6271:
6270:
6268:
6266:
6262:
6256:
6253:
6251:
6248:
6246:
6245:Memory buffer
6243:
6241:
6240:Register file
6238:
6236:
6233:
6231:
6228:
6226:
6223:
6222:
6220:
6218:
6214:
6206:
6203:
6201:
6198:
6197:
6196:
6193:
6191:
6188:
6186:
6183:
6181:
6180:Combinational
6178:
6177:
6175:
6173:
6169:
6163:
6160:
6156:
6153:
6152:
6150:
6147:
6145:
6142:
6140:
6137:
6132:
6129:
6127:
6124:
6123:
6121:
6118:
6115:
6112:
6109:
6106:
6103:
6100:
6099:
6097:
6095:
6089:
6083:
6080:
6078:
6075:
6073:
6070:
6068:
6065:
6061:
6058:
6056:
6053:
6051:
6048:
6046:
6043:
6041:
6038:
6036:
6033:
6032:
6031:
6028:
6026:
6023:
6022:
6020:
6016:
6010:
6007:
6005:
6002:
6000:
5997:
5995:
5992:
5991:
5989:
5985:
5977:
5974:
5973:
5972:
5969:
5967:
5964:
5962:
5959:
5957:
5954:
5952:
5949:
5947:
5944:
5942:
5939:
5937:
5934:
5932:
5929:
5927:
5924:
5922:
5919:
5917:
5914:
5912:
5909:
5907:
5904:
5902:
5899:
5898:
5896:
5894:
5890:
5880:
5877:
5875:
5872:
5870:
5867:
5864:
5861:
5858:
5855:
5852:
5849:
5846:
5843:
5841:
5838:
5835:
5832:
5830:
5827:
5825:
5822:
5821:
5819:
5817:
5811:
5804:
5801:
5799:
5796:
5793:
5790:
5787:
5784:
5783:
5781:
5775:
5769:
5766:
5764:
5761:
5759:
5756:
5754:
5751:
5749:
5746:
5744:
5741:
5739:
5736:
5735:
5733:
5729:
5722:
5719:
5716:
5713:
5710:
5707:
5705:
5702:
5700:
5697:
5695:
5692:
5690:
5687:
5685:
5682:
5680:
5677:
5675:
5672:
5670:
5667:
5665:
5662:
5660:
5657:
5653:
5650:
5649:
5647:
5644:
5641:
5638:
5637:
5635:
5633:
5629:
5623:
5620:
5618:
5615:
5612:
5609:
5606:
5603:
5600:
5597:
5594:
5591:
5588:
5585:
5580:
5577:
5576:
5574:
5571:
5569:
5566:
5565:
5563:
5561:
5555:
5543:
5540:
5539:
5538:
5535:
5533:
5530:
5526:
5523:
5521:
5518:
5516:
5513:
5511:
5508:
5507:
5506:
5503:
5501:
5498:
5497:
5495:
5493:
5489:
5483:
5480:
5478:
5475:
5473:
5470:
5466:
5463:
5461:
5458:
5457:
5456:
5453:
5451:
5448:
5447:
5445:
5443:
5439:
5433:
5430:
5428:
5425:
5421:
5418:
5417:
5416:
5413:
5409:
5406:
5404:
5401:
5400:
5399:
5396:
5392:
5389:
5387:
5384:
5383:
5382:
5379:
5377:
5374:
5370:
5367:
5365:
5362:
5361:
5360:
5357:
5356:
5354:
5350:
5347:
5345:
5341:
5331:
5328:
5326:
5323:
5322:
5320:
5318:
5314:
5308:
5305:
5303:
5300:
5296:
5293:
5291:
5288:
5287:
5286:
5283:
5281:
5280:Scoreboarding
5278:
5277:
5275:
5273:
5269:
5263:
5262:False sharing
5260:
5258:
5255:
5253:
5250:
5248:
5245:
5244:
5242:
5240:
5236:
5230:
5227:
5225:
5222:
5220:
5217:
5216:
5214:
5212:
5208:
5205:
5203:
5199:
5189:
5186:
5184:
5181:
5179:
5176:
5173:
5169:
5166:
5164:
5161:
5159:
5156:
5154:
5151:
5150:
5148:
5146:
5143:
5141:
5138:
5136:
5133:
5131:
5128:
5126:
5123:
5121:
5118:
5116:
5113:
5111:
5108:
5106:
5103:
5101:
5098:
5096:
5093:
5091:
5088:
5084:
5081:
5079:
5076:
5074:
5071:
5070:
5068:
5066:
5063:
5061:
5058:
5056:
5055:Stanford MIPS
5053:
5051:
5048:
5046:
5043:
5041:
5038:
5036:
5033:
5031:
5028:
5027:
5025:
5019:
5011:
5008:
5007:
5006:
5003:
5001:
4998:
4996:
4993:
4991:
4988:
4986:
4983:
4981:
4978:
4976:
4973:
4969:
4966:
4965:
4964:
4961:
4957:
4954:
4953:
4952:
4949:
4947:
4944:
4942:
4939:
4937:
4934:
4932:
4929:
4928:
4926:
4922:
4919:
4917:
4916:architectures
4911:
4905:
4902:
4900:
4897:
4895:
4892:
4890:
4887:
4885:
4884:Heterogeneous
4882:
4878:
4875:
4873:
4870:
4869:
4868:
4865:
4863:
4860:
4856:
4853:
4851:
4848:
4846:
4843:
4841:
4838:
4837:
4836:
4835:Memory access
4833:
4831:
4828:
4826:
4823:
4821:
4818:
4816:
4813:
4809:
4806:
4805:
4804:
4801:
4799:
4796:
4794:
4791:
4790:
4788:
4786:
4782:
4774:
4771:
4769:
4768:Random-access
4766:
4764:
4761:
4759:
4756:
4755:
4754:
4751:
4749:
4748:Stack machine
4746:
4744:
4741:
4737:
4734:
4732:
4729:
4727:
4724:
4722:
4719:
4717:
4714:
4712:
4709:
4707:
4704:
4702:
4699:
4698:
4697:
4694:
4690:
4687:
4685:
4682:
4680:
4677:
4675:
4672:
4670:
4667:
4665:
4664:with datapath
4662:
4661:
4660:
4657:
4655:
4652:
4650:
4647:
4646:
4644:
4642:
4638:
4634:
4627:
4622:
4620:
4615:
4613:
4608:
4607:
4604:
4597:
4594:
4591:
4588:
4585:
4584:
4579:
4576:
4573:
4570:
4567:
4564:
4562:
4559:
4557:
4554:
4552:
4549:
4547:
4544:
4543:
4536:
4533:
4525:
4522:February 2017
4515:
4511:
4510:inappropriate
4507:
4503:
4497:
4495:
4488:
4479:
4478:
4466:
4461:
4457:
4453:
4449:
4445:
4444:
4439:
4434:
4430:
4428:0-13-581454-5
4424:
4419:
4418:
4411:
4400:
4396:
4392:
4388:
4384:
4380:
4376:
4372:
4371:
4366:
4362:
4358:
4357:Wilkes, M. V.
4354:
4343:
4339:
4335:
4331:
4327:
4323:
4319:
4315:
4314:Wilkes, M. V.
4311:
4300:
4295:
4284:
4280:
4276:
4272:
4268:
4264:
4263:
4258:
4253:
4252:
4240:
4234:
4226:
4220:
4204:
4203:Bitsavers.org
4197:
4191:
4183:
4179:
4175:
4169:
4154:
4150:
4144:
4129:
4125:
4119:
4111:
4107:
4101:
4087:on 2018-03-19
4086:
4082:
4076:
4069:
4064:
4056:
4049:
4048:
4040:
4025:
4021:
4017:
4016:
4011:
4004:
3996:
3990:
3971:
3970:
3963:
3945:
3938:
3937:
3930:
3923:
3913:
3906:
3890:
3886:
3882:
3878:
3874:
3870:
3863:
3852:
3848:
3841:
3834:
3818:
3814:
3808:
3804:
3803:
3795:
3776:
3772:
3765:
3759:
3745:on 2013-10-16
3744:
3740:
3736:
3729:
3721:
3715:
3711:
3710:
3702:
3688:on 2015-04-19
3687:
3683:
3679:
3672:
3664:
3662:0-07-027363-4
3658:
3654:
3647:
3631:
3627:
3621:
3603:
3596:
3595:
3588:
3570:
3563:
3562:
3555:
3537:
3530:
3529:
3522:
3504:
3497:
3496:
3489:
3473:
3469:
3465:
3464:
3459:
3452:
3441:September 24,
3436:
3432:
3428:
3422:
3406:
3402:
3396:
3388:
3382:
3378:
3377:
3369:
3361:
3357:
3353:
3349:
3345:
3341:
3340:
3339:IEEE Computer
3335:
3328:
3320:
3318:0-07-057302-6
3314:
3310:
3306:
3302:
3297:
3296:
3290:
3286:
3282:
3278:
3271:
3253:
3246:
3245:
3238:
3236:
3234:
3214:
3213:
3206:
3190:
3186:
3180:
3172:
3168:
3164:
3157:
3149:
3147:1-55558-145-5
3143:
3139:
3138:Digital Press
3132:
3131:
3123:
3121:
3112:
3109:(Datasheet).
3105:
3099:
3091:
3089:0-8186-2028-5
3085:
3081:
3077:
3073:
3069:
3065:
3059:
3051:
3047:
3043:
3039:
3035:
3031:
3027:
3020:
3018:
3009:
3005:
3001:
2997:
2990:
2983:
2981:
2979:
2970:
2966:
2959:
2948:
2947:
2939:
2931:
2927:
2920:
2918:
2906:
2900:
2896:
2889:
2884:
2880:
2876:
2871:
2870:
2866:
2847:
2840:
2839:
2831:
2815:
2808:
2807:
2800:
2784:
2780:
2779:"6502 Images"
2774:
2759:
2755:
2747:
2732:
2728:
2724:
2720:
2713:
2705:
2698:
2697:
2690:
2682:
2675:
2674:
2667:
2653:
2649:
2643:
2635:
2631:
2624:
2622:
2613:
2609:
2602:
2594:
2590:
2583:
2581:
2564:
2560:
2556:
2550:
2532:
2525:
2518:
2516:
2499:
2495:
2493:0-8247-2281-7
2489:
2485:
2484:
2476:
2474:
2472:
2467:
2452:
2448:
2437:
2434:
2432:
2429:
2427:
2424:
2422:
2419:
2417:
2414:
2412:
2409:
2406:
2403:
2401:
2398:
2395:
2392:
2390:
2387:
2384:
2381:
2380:
2375:
2369:
2364:
2357:
2355:
2351:
2347:
2344:
2339:
2336:
2332:
2328:
2325:Nx586, Intel
2324:
2320:
2310:
2308:
2304:
2300:
2296:
2292:
2288:
2284:
2279:
2276:
2267:
2264:
2260:
2256:
2252:
2248:
2244:
2242:, and others.
2241:
2237:
2232:
2231:
2230:
2224:
2220:
2217:
2214:
2211:
2208:
2207:
2206:
2204:
2199:
2197:
2193:
2189:
2184:
2182:
2171:
2168:December 2023
2159:
2154:
2145:
2144:
2135:
2132:
2124:
2114:
2110:
2106:
2100:
2099:
2095:
2090:This section
2088:
2084:
2079:
2078:
2070:
2068:
2067:minicomputers
2064:
2060:
2056:
2052:
2047:
2045:
2041:
2037:
2032:
2028:
2024:
2020:
2016:
2011:
2007:
2004:
2002:
1999:
1995:
1991:
1990:
1985:
1981:
1977:
1972:
1970:
1966:
1962:
1958:
1954:
1950:
1947:
1943:
1939:
1935:
1930:
1928:
1924:
1920:
1916:
1910:
1900:
1898:
1894:
1889:
1886:
1883:
1879:
1869:
1866:
1865:
1862:
1859:
1857:
1853:
1849:
1845:
1841:
1836:
1827:
1714:
1706:Jump address
1705:
1702:
1699:
1696:
1693:
1690:
1687:
1686:
1683:
1680:
1672:
1670:
1666:
1662:
1657:
1655:
1651:
1646:
1641:
1636:
1634:
1630:
1627:" chips. The
1626:
1621:
1617:
1613:
1609:
1605:
1597:
1593:
1590:
1589:register file
1586:
1582:
1578:
1574:
1571:
1567:
1563:
1560:
1556:
1552:
1551:
1550:
1538:
1534:
1530:
1526:
1522:
1518:
1515:
1511:
1507:
1503:
1499:
1495:
1491:
1488:
1485:
1481:
1477:
1473:
1469:
1465:
1461:
1458:
1453:
1449:
1446:
1442:
1439:
1435:
1431:
1428:
1424:
1420:
1417:
1413:
1410:
1409:PlayStation 2
1407:
1403:
1402:
1400:
1396:
1388:
1387:
1382:
1381:Angel Studios
1378:
1374:
1373:
1368:
1367:
1362:
1361:
1356:
1351:
1347:
1343:
1339:
1336:
1332:
1328:
1324:
1320:
1316:
1315:IBM System/38
1312:
1309:
1305:
1302:
1298:
1295:
1294:
1288:
1284:
1279:
1275:
1271:
1270:
1269:
1268:
1264:
1260:
1257:
1256:
1251:
1247:
1243:
1240:
1236:
1232:
1228:
1225:
1221:
1217:
1211:
1207:
1204:
1200:
1197:
1193:
1189:
1185:
1181:
1177:
1174:
1169:
1165:
1164:
1162:
1159:
1155:
1152:
1148:
1144:
1140:
1139:
1133:
1131:
1127:
1123:
1119:
1115:
1111:
1107:
1101:
1099:
1095:
1090:
1086:
1080:
1076:
1074:
1069:
1064:
1061:
1058:
1054:
1050:
1046:
1035:
1033:
1029:
1025:
1020:
1018:
1014:
1009:
1005:
1000:
998:
994:
990:
986:
981:
980:minicomputers
973:
968:
959:
957:
951:
948:
942:
939:
935:
931:
927:
920:
910:
908:
903:
899:
895:
890:
888:
884:
880:
879:
874:
873:MIT Whirlwind
859:
857:
853:
848:
844:
841:
837:
833:
829:
823:
814:
810:
808:
804:
800:
796:
792:
788:
784:
781:
777:
774:
769:
766:
762:
758:
754:
750:
746:
742:
737:
733:
731:
727:
723:
719:
715:
708:Justification
705:
702:
694:
690:
687:
683:
679:
675:
671:
668:
665:
662:
658:
655:
651:
649:
645:
641:
640:
639:
637:
630:Microprograms
627:
625:
621:
620:
619:control store
614:
610:
606:
602:
592:
590:
586:
582:
577:
575:
571:
567:
562:
560:
555:
550:
546:
544:
533:
531:
526:
522:
517:
511:
507:
501:
498:
494:
490:
485:
483:
482:register file
479:
464:
462:
458:
457:
452:
448:
444:
439:
437:
433:
429:
425:
420:
418:
414:
410:
406:
405:state machine
401:
399:
395:
391:
387:
383:
379:
375:
371:
367:
363:
351:
346:
344:
339:
337:
332:
331:
329:
328:
323:
320:
318:
314:
311:
308:
305:
304:
303:
302:
298:
297:
291:
288:
286:
282:
279:
276:
272:
269:
267:
264:
261:
258:
255:
251:
248:
246:
242:
239:
237:
233:
230:
227:
224:
221:
218:
217:
216:
215:
211:
210:
205:
204:Recompilation
202:
200:
197:
195:
192:
188:
185:
183:
180:
179:
177:
174:
171:
170:Ahead-of-time
168:
167:
166:
165:
161:
160:
155:
152:
150:
147:
145:
142:
140:
137:
135:
132:
131:
130:
129:
126:Types of code
125:
124:
117:
114:
112:
109:
107:
104:
100:
97:
96:
95:
92:
91:
90:
87:
84:
81:
77:
74:
70:
67:
66:
65:
62:
61:
60:
57:
55:
52:
51:
50:
49:
45:
44:
41:
38:
37:
33:
19:
6534:Chip carrier
6472:Clock gating
6391:Mixed-signal
6292:
6288:Write buffer
6265:Control unit
6077:Clock signal
5816:accelerators
5798:Cypress PSoC
5455:Simultaneous
5272:Out-of-order
4904:Neuromorphic
4785:Architecture
4743:Belt machine
4736:Zeno machine
4669:Hierarchical
4581:
4528:
4519:
4504:by removing
4491:
4447:
4441:
4416:
4402:. Retrieved
4374:
4368:
4345:. Retrieved
4325:
4321:
4302:. Retrieved
4286:. Retrieved
4266:
4260:
4224:
4219:
4207:. Retrieved
4202:
4190:
4182:the original
4177:
4168:
4157:. Retrieved
4143:
4132:. Retrieved
4118:
4110:the original
4100:
4089:. Retrieved
4085:the original
4075:
4063:
4046:
4039:
4028:. Retrieved
4020:Heise Verlag
4013:
4003:
3994:
3989:
3977:. Retrieved
3968:
3962:
3951:. Retrieved
3935:
3929:
3921:
3915:. Retrieved
3905:
3893:. Retrieved
3862:
3846:
3833:
3821:. Retrieved
3801:
3794:
3782:. Retrieved
3773:. May 1996.
3758:
3747:. Retrieved
3743:the original
3738:
3728:
3708:
3701:
3690:. Retrieved
3686:the original
3681:
3671:
3652:
3646:
3634:. Retrieved
3630:the original
3620:
3609:. Retrieved
3593:
3587:
3576:. Retrieved
3560:
3554:
3543:. Retrieved
3527:
3521:
3510:. Retrieved
3494:
3488:
3476:. Retrieved
3461:
3451:
3439:. Retrieved
3430:
3421:
3409:. Retrieved
3395:
3375:
3368:
3343:
3337:
3327:
3301:New York, NY
3294:
3289:Allen Newell
3270:
3259:. Retrieved
3243:
3220:. Retrieved
3211:
3205:
3193:. Retrieved
3179:
3171:the original
3166:
3156:
3129:
3098:
3067:
3058:
3036:(6): 34–38.
3033:
3029:
2999:
2995:
2968:
2958:
2945:
2938:
2929:
2894:
2874:
2865:
2853:. Retrieved
2846:the original
2837:
2830:
2818:. Retrieved
2805:
2799:
2787:. Retrieved
2773:
2762:. Retrieved
2746:
2735:. Retrieved
2726:
2722:
2712:
2695:
2689:
2672:
2666:
2655:. Retrieved
2651:
2642:
2633:
2611:
2601:
2592:
2567:. Retrieved
2563:the original
2558:
2549:
2538:. Retrieved
2502:. Retrieved
2482:
2451:
2340:
2316:
2280:
2272:
2228:
2200:
2185:
2178:
2165:
2157:
2127:
2118:
2103:Please help
2091:
2065:V-70 series
2048:
2027:Intel Core 2
2012:
2008:
2005:
1993:
1987:
1983:
1979:
1975:
1973:
1952:
1931:
1926:
1922:
1918:
1914:
1912:
1896:
1892:
1890:
1887:
1881:
1878:field select
1877:
1875:
1870:Field value
1867:Field select
1860:
1837:
1833:
1824:
1711:
1703:Type of jump
1681:
1678:
1664:
1660:
1658:
1637:
1601:
1547:
1384:
1370:
1364:
1358:
1322:
1253:
1195:
1191:
1102:
1098:out-of-order
1081:
1077:
1065:
1062:
1043:all-digital
1041:
1021:
1001:
977:
955:
952:
943:
922:
906:
897:
891:
883:diode matrix
876:
870:
858:and wiring.
849:
845:
824:
820:
811:
770:
753:Data General
738:
734:
729:
711:
698:
685:
681:
677:
673:
653:
646:side of the
643:
635:
633:
616:
613:flash memory
598:
578:
566:control unit
563:
558:
554:machine code
551:
547:
543:player piano
539:
530:control unit
518:
502:
486:
475:
454:
450:
440:
421:
417:microprogram
416:
412:
402:
378:machine code
365:
359:
176:Just-in-time
153:
149:Machine code
69:Compile time
6319:Multiplexer
6283:Data buffer
5994:Single-core
5966:bit slicing
5824:Coprocessor
5679:Coprocessor
5560:performance
5482:Cooperative
5472:Speculative
5432:Distributed
5391:Superscalar
5376:Instruction
5344:Parallelism
5317:Speculative
5149:System/3x0
5021:Instruction
4798:Von Neumann
4711:Post–Turing
4304:October 27,
4209:15 February
3979:October 29,
3895:18 December
3784:November 7,
3682:mat.uson.mx
3478:October 18,
3222:October 29,
3002:(1): 4–11.
2820:October 29,
2789:January 22,
2652:www.iso.org
2569:January 22,
2436:Superscalar
2327:Pentium Pro
2121:August 2023
2015:Pentium Pro
1882:field value
1521:video cards
1342:Nintendo 64
1158:EMIDEC 1100
1094:Pentium Pro
1089:Intel 80486
1038:RISC enters
926:core memory
902:conditional
832:core memory
506:main memory
409:electronics
290:Zend Engine
271:Objective-C
139:Object code
134:Source code
111:Interpreter
59:Translation
6549:Categories
6439:management
6334:Multiplier
6195:Logic gate
6185:Sequential
6092:Functional
6072:Clock rate
6045:Data cache
6018:Components
5999:Multi-core
5987:Core count
5477:Preemptive
5381:Pipelining
5364:Bit-serial
5307:Wide-issue
5252:Structural
5174:Tilera ISA
5140:MicroBlaze
5110:ETRAX CRIS
5005:Comparison
4850:Load–store
4830:Endianness
4404:August 23,
4159:2008-02-25
4134:2020-01-16
4091:2018-03-21
4030:2017-08-28
3953:2012-08-27
3917:2023-10-27
3749:2013-11-07
3692:2015-08-08
3611:2020-01-14
3578:2020-01-14
3545:2020-01-14
3512:2020-01-14
3307:. p.
3261:2019-11-09
2764:2011-07-10
2737:2011-07-10
2657:2024-06-23
2540:2024-08-21
2463:References
2389:CPU design
2259:Cyrix 6x86
2196:pipelining
2029:and Intel
1961:System/370
1844:System/390
1661:horizontal
1629:AMD Am2900
1537:GDDR SDRAM
1500:(patch by
1482:, and the
1375:; and the
1335:IBM AS/400
1308:Xerox Alto
1213:installed.
1053:System/370
1049:John Cocke
1017:Intel 8086
956:de rigueur
938:System/360
919:System/360
834:, and the
807:transistor
776:System/360
726:sequential
636:horizontal
611:(SRAM) or
106:Executable
6373:Circuitry
6293:Microcode
6217:Registers
6060:coherence
6035:CPU cache
5893:Word size
5558:Processor
5202:Execution
5105:DEC Alpha
5083:Power ISA
4899:Cognitive
4706:Universal
4506:excessive
4347:August 7,
4233:cite book
3873:Newsgroup
3849:: 49–71.
3636:5 January
3463:Gamasutra
3411:March 27,
3346:: 77–93.
3195:April 26,
2431:Millicode
2269:memories.
2092:does not
2061:/12, and
2055:PDP-11/60
2003:complex.
1957:Symbolics
1856:millicode
1840:DEC Alpha
1700:operation
1645:simulator
1625:bit slice
1297:Microdata
1263:Burroughs
1130:millicode
1128:CPUs use
1085:DEC Alpha
1008:Zilog Z80
930:core rope
892:In 1951,
887:CPU clock
797:(PLA) or
730:see below
718:hardwired
617:writable
603:(ROM) or
536:Microcode
451:microcode
366:microcode
315:and
283:and
273:and
243:and
154:Microcode
89:Execution
6560:Firmware
6311:Datapath
6004:Manycore
5976:variable
5814:Hardware
5450:Temporal
5130:OpenRISC
4825:Cellular
4815:Dataflow
4808:modified
4583:EE Times
4399:62230627
4316:(1986).
4288:June 21,
4283:16405547
4153:Archived
4128:Archived
4024:Archived
3944:Archived
3889:Archived
3851:Archived
3817:Archived
3775:Archived
3602:Archived
3569:Archived
3536:Archived
3503:Archived
3472:Archived
3435:Archived
3405:Archived
3291:(eds.).
3252:Archived
3189:Archived
3140:. 1995.
3050:14939489
2855:June 21,
2783:Archived
2758:Archived
2731:Archived
2612:6502.org
2531:Archived
2498:Archived
2426:MikroSim
2400:Firmware
2360:See also
2247:operands
2223:pipeline
2040:Meltdown
1953:Nautilus
1940:, early
1929:(WISC).
1897:picocode
1893:nanocode
1665:vertical
1583:and the
1577:register
1508:) since
1492:Earlier
1470:made by
1464:MCP-1600
1457:IBM 1130
1441:Archived
1430:Archived
1419:Archived
1355:Factor 5
1331:IBM RS64
1210:Model 85
1203:Model 50
1188:Model 40
1180:Model 30
1173:IBM 1410
1168:Model 25
1136:Examples
1057:compiler
840:Model 50
817:Benefits
682:overflow
674:negative
663:addition
574:VAX 8800
570:VAX 9000
525:data bus
510:MOS 6502
493:compiler
467:Overview
456:firmware
228:(Erlang)
144:Bytecode
64:Compiler
6487:Related
6418:Quantum
6408:Digital
6403:Boolean
6301:Counter
6200:Quantum
5961:512-bit
5956:256-bit
5951:128-bit
5794:(MPSoC)
5779:on chip
5777:Systems
5595:(FLOPS)
5408:Process
5257:Control
5239:Hazards
5125:Itanium
5120:Unicore
5078:PowerPC
4803:Harvard
4763:Pointer
4758:Counter
4716:Quantum
4500:Please
4492:use of
4379:Bibcode
4342:1978847
3881:Usenet:
3875::
3823:Jan 18,
2593:Red Hat
2504:Jan 17,
2158:updated
2113:removed
2098:sources
2051:HP 2100
2044:FreeBSD
2036:Spectre
1852:PALcode
1301:Reality
1287:Fortran
1220:NCR 315
1114:OpenVMS
1106:PALcode
913:The 360
862:History
495:of the
428:emulate
285:Node.js
241:CPython
99:Runtime
6423:Switch
6413:Analog
6151:(IMC)
6122:(MMU)
5971:others
5946:64-bit
5941:48-bit
5936:32-bit
5931:24-bit
5926:16-bit
5921:15-bit
5916:12-bit
5753:Mobile
5669:Stream
5664:Barrel
5659:Vector
5648:(GPU)
5607:(SUPS)
5575:(IPC)
5427:Memory
5420:Vector
5403:Thread
5386:Scalar
5188:Others
5135:RISC-V
5100:SuperH
5069:Power
5065:MIPS-X
5040:PDP-11
4889:Fabric
4641:Models
4425:
4397:
4340:
4281:
3883:
3809:
3716:
3659:
3383:
3360:398484
3358:
3315:
3144:
3086:
3048:
2901:
2490:
2331:AMD K5
2329:, and
2323:NexGen
2265:, etc.
2255:AMD K5
2059:TI-990
2053:, DEC
1965:PDP-10
1951:8800 (
1606:and a
1559:E-unit
1555:I-unit
1487:LSI-11
1478:, the
1369:, and
1289:, etc.
1239:PDP-11
1235:PDP-10
993:PDP-11
978:Early
878:ad hoc
701:360/85
684:, and
595:Design
521:opcode
447:Lenovo
266:LuaJIT
178:(JIT)
6479:(PPW)
6437:Power
6329:Adder
6205:Array
6172:Logic
6133:(TLB)
6116:(FPU)
6110:(AGU)
6104:(ALU)
6094:units
6030:Cache
5911:8-bit
5906:4-bit
5901:1-bit
5865:(TPU)
5859:(DSP)
5853:(PPU)
5847:(VPU)
5836:(GPU)
5805:(NoC)
5788:(SoC)
5723:(PoP)
5717:(SiP)
5711:(MCM)
5652:GPGPU
5642:(CPU)
5632:Types
5613:(PPW)
5601:(TPS)
5589:(IPS)
5581:(CPI)
5352:Level
5163:S/390
5158:S/370
5153:S/360
5095:SPARC
5073:POWER
4956:TRIPS
4924:Types
4395:S2CID
4338:S2CID
4279:S2CID
4199:(PDF)
4178:Intel
4055:Intel
4051:(PDF)
3973:(PDF)
3947:(PDF)
3940:(PDF)
3854:(PDF)
3843:(PDF)
3778:(PDF)
3767:(PDF)
3605:(PDF)
3598:(PDF)
3572:(PDF)
3565:(PDF)
3539:(PDF)
3532:(PDF)
3506:(PDF)
3499:(PDF)
3356:S2CID
3279:. In
3255:(PDF)
3248:(PDF)
3216:(PDF)
3134:(PDF)
3111:Intel
3107:(PDF)
3046:S2CID
2992:(PDF)
2950:(PDF)
2891:(PDF)
2849:(PDF)
2842:(PDF)
2810:(PDF)
2729:(6).
2700:(PDF)
2677:(PDF)
2534:(PDF)
2527:(PDF)
2443:Notes
2407:(FPU)
2396:(FSM)
2385:(AGU)
2354:CPUID
1942:Xerox
1771:NONE
1519:Some
1466:is a
1438:MCL65
1427:MCL51
1416:MCL86
1283:COBOL
1278:B1700
1244:Most
1231:PDP-9
1149:uses
716:were
686:carry
559:micro
390:Intel
317:Clang
309:(GCC)
292:(PHP)
275:Swift
262:(JVM)
222:(ART)
172:(AOT)
6570:BIOS
6457:ACPI
6190:Glue
6082:FIFO
6025:Core
5763:ASIP
5704:CPLD
5699:FPOA
5694:FPGA
5689:ASIC
5542:SPMD
5537:MIMD
5532:MISD
5525:SWAR
5505:SIMD
5500:SISD
5415:Data
5398:Task
5369:Word
5115:M32R
5060:MIPS
5023:sets
4990:ZISC
4985:NISC
4980:OISC
4975:MISC
4968:EPIC
4963:VLIW
4951:EDGE
4941:RISC
4936:CISC
4845:HUMA
4840:NUMA
4423:ISBN
4406:2006
4349:2006
4306:2023
4290:2006
4239:link
4211:2024
3981:2021
3897:2008
3825:2015
3807:ISBN
3786:2013
3714:ISBN
3657:ISBN
3638:2017
3480:2010
3443:2013
3413:2008
3381:ISBN
3313:ISBN
3224:2021
3197:2010
3142:ISBN
3084:ISBN
3072:IEEE
2969:Byte
2899:ISBN
2857:2006
2822:2021
2791:2015
2571:2015
2506:2016
2488:ISBN
2275:VLIW
2251:i486
2240:8086
2188:CISC
2181:RISC
2096:any
2094:cite
2038:and
2031:Xeon
1984:IMPL
1876:The
1846:and
1767:NEXT
1763:COPY
1755:NONE
1623:as "
1620:CPUs
1533:DRAM
1529:SRAM
1523:and
1512:and
1502:BIOS
1480:WD16
1462:The
1450:The
1436:and
1406:Sony
1397:and
1340:The
1313:The
1306:The
1276:The
1218:The
1208:The
1201:The
1196:CROS
1192:TROS
1186:The
1178:The
1166:The
1156:The
1141:The
1068:RISC
928:and
852:bugs
778:and
763:and
751:and
745:PL/I
678:zero
489:RISC
432:word
392:and
322:MSVC
313:LLVM
250:crt0
245:PyPy
236:Mono
226:BEAM
85:(IR)
54:Code
6452:APM
6447:PMU
6339:CPU
6296:ROM
6067:Bus
5684:PAL
5359:Bit
5145:LMC
5050:ARM
5045:x86
5035:VAX
4508:or
4452:doi
4387:doi
4330:doi
4271:doi
3431:IGN
3348:doi
3309:671
3076:doi
3038:doi
3030:ACM
3004:doi
2814:IBM
2559:IBM
2319:x86
2236:Z80
2107:by
2019:x86
1994:POR
1982:or
1980:IML
1949:VAX
1946:DEC
1923:WCS
1921:or
1895:or
1802:JMP
1798:ADD
1784:MAR
1759:MAR
1751:MDR
1663:or
1633:bus
1594:An
1553:An
1531:or
1504:or
1494:x86
1484:DEC
1357:'s
1344:'s
1224:ROM
1118:VAX
997:VAX
934:IBM
783:VAX
773:IBM
693:ÎĽPC
648:ALU
514:ADC
443:IBM
394:AMD
360:In
6551::
6386:3D
4580:,
4446:.
4440:.
4393:.
4385:.
4375:49
4373:.
4367:.
4359:;
4336:.
4324:.
4320:.
4277:.
4267:10
4265:.
4259:.
4235:}}
4231:{{
4201:.
4176:.
4151:.
4053:.
4022:.
4012:.
3920:.
3887:.
3879:.
3871:.
3845:.
3815:.
3769:.
3737:.
3680:.
3470:.
3466:.
3460:.
3429:.
3354:.
3344:14
3342:.
3336:.
3311:.
3303::
3299:.
3287:;
3283:;
3232:^
3165:.
3119:^
3082:.
3074:.
3066:.
3044:.
3032:.
3028:.
3016:^
3000:34
2998:.
2994:.
2977:^
2967:.
2928:.
2916:^
2812:.
2781:.
2756:.
2727:22
2725:.
2721:.
2702:.
2679:.
2650:.
2632:.
2620:^
2610:.
2591:.
2579:^
2557:.
2514:^
2496:.
2470:^
2356:.
2305:,
2301:,
2297:,
2293:,
2289:,
2285:,
2261:,
2257:,
2253:,
2238:,
2198:.
2069:.
2057:,
1971:.
1899:.
1794:PC
1635:.
1575:A
1564:A
1425:,
1383:'
1363:,
1285:,
1019:.
759:,
680:,
676:,
419:.
364:,
281:V8
277:'s
4625:e
4618:t
4611:v
4535:)
4529:(
4524:)
4520:(
4516:.
4498:.
4467:.
4458:.
4454::
4448:6
4431:.
4408:.
4389::
4381::
4351:.
4332::
4326:8
4308:.
4292:.
4273::
4241:)
4213:.
4162:.
4137:.
4094:.
4033:.
3983:.
3956:.
3899:.
3827:.
3788:.
3752:.
3722:.
3695:.
3665:.
3640:.
3614:.
3581:.
3548:.
3515:.
3482:.
3445:.
3415:.
3389:.
3362:.
3350::
3321:.
3264:.
3226:.
3199:.
3150:.
3092:.
3078::
3052:.
3040::
3034:8
3010:.
3006::
2971:.
2932:.
2907:.
2881:.
2859:.
2824:.
2793:.
2767:.
2740:.
2660:.
2636:.
2614:.
2595:.
2573:.
2543:.
2508:.
2170:)
2166:(
2134:)
2128:(
2123:)
2119:(
2115:.
2101:.
1992:(
1978:(
1804:,
1800:,
1796:,
1792:,
1789:1
1786:,
1769:,
1765:,
1761:,
1757:,
1753:,
1728::
1561:.
1459:.
1389:.
1258:.
688:)
654:B
644:A
445:/
349:e
342:t
335:v
254:C
252:(
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.