1139:
952:
586:
463:
27:
665:, later headed Cray Research. Cray developed the XMP line of supercomputers, using pipelining for both multiply and add/subtract functions. Later, Star Technologies added parallelism (several pipelined functions working in parallel), developed by Roger Chen. In 1984, Star Technologies added the pipelined divide circuit developed by James Bradley. By the mid-1980s, pipelining was used by many different companies around the world.
1199:, dealt with hazards by simply warning the programmer; in this case, that one or more instructions following the branch would be executed whether or not the branch was taken. This could be useful; for instance, after computing a number in a register, a conditional branch could be followed by loading into the register a value more useful to subsequent computations in both the branch and the non-branch case.
758:), or declares that the second instruction uses an old value rather than the desired value (in the example above, the processor might counter-intuitively copy the unincremented value), or declares that the value it uses is undefined. The programmer may have unrelated work that the processor can do in the meantime; or, to ensure correct results, the programmer may insert
1149:
In the illustration at right, in cycle 3, the processor cannot decode the purple instruction, perhaps because the processor determines that decoding depends on results produced by the execution of the green instruction. The green instruction can proceed to the
Execute stage and then to the Write-back
371:
When operating efficiently, a pipelined computer will have an instruction in each stage. It is then working on all of those instructions at the same time. It can finish about one instruction for each cycle of its clock. But when a program switches to a different sequence of instructions, the pipeline
367:
In a pipelined computer, the control unit arranges for the flow to start, continue, and stop as a program commands. The instruction data is usually passed in pipeline registers from one stage to the next, with a somewhat separated piece of control logic for each stage. The control unit also assures
907:
Pipelining keeps all portions of the processor occupied and increases the amount of useful work the processor can do in a given time. Pipelining typically reduces the processor's cycle time and increases the throughput of instructions. The speed advantage is diminished to the extent that execution
805:
A branch out of the normal instruction sequence often involves a hazard. Unless the processor can give effect to the branch in a single time cycle, the pipeline will continue fetching instructions sequentially. Such instructions cannot be allowed to take effect because the programmer has diverted
359:
A pipelined model of computer is often the most economical, when cost is measured as logic gates per instruction per second. At each instant, an instruction is in only one pipeline stage, and on average, a pipeline stage is less costly than a multicycle computer. Also, when made well, most of the
363:
However, a pipelined computer is usually more complex and more costly than a comparable multicycle computer. It typically has more logic gates, registers and a more complex control unit. In a like way, it might use more total energy, while using less energy per instruction. Out of order CPUs can
351:
due to the added overhead of the pipelining process itself. Also, even though the electronic logic has a fixed maximum speed, a pipelined computer can be made faster or slower by varying the number of stages in the pipeline. With more stages, each stage does less work, and so the stage has fewer
944:
To the right is a generic pipeline with four stages: fetch, decode, execute and write-back. The top gray box is the list of instructions waiting to be executed, the bottom gray box is the list of instructions that have had their execution completed, and the middle white box is the pipeline.
454:
The
Xelerated X10q Network Processor has a pipeline more than a thousand stages long, although in this case 200 of these stages represent independent CPUs with individually programmed instructions. The remaining stages are used to coordinate accesses to memory and on-chip function
934:
Compared to environments where the programmer needs to avoid or work around hazards, use of a non-pipelined processor may make it easier to program and to train programmers. The non-pipelined processor also makes it easier to predict the exact timing of a given sequence of
925:
By making each dependent step simpler, pipelining can enable complex operations more economically than adding complex circuitry, such as for numerical calculations. However, a processor that declines to pursue increased speed with pipelining may be simpler and cheaper to
828:
Programs written for a pipelined processor deliberately avoid branching to minimize possible loss of speed. For example, the programmer can handle the usual case with sequential execution and branch only on detecting unusual cases. Using programs such as
360:
pipelined computer's logic is in use most of the time. In contrast, out of order computers usually have large amounts of idle logic at any given instant. Similar calculations usually show that a pipelined computer uses less energy per instruction.
820:
A processor with an implementation of branch prediction that usually makes correct predictions can minimize the performance penalty from branching. However, if branches are predicted poorly, it may create more work for the processor, such as
1157:
When the bubble moves out of the pipeline (at cycle 6), normal execution resumes. But everything now is one cycle late. It will take 8 cycles (cycle 1 through 8) rather than 7 to completely execute the four instructions shown in colors.
335:
This arrangement lets the CPU complete an instruction on each clock cycle. It is common for even-numbered stages to operate on one edge of the square-wave clock, while odd-numbered stages operate on the other edge. This allows more
368:
that the instruction in each stage does not harm the operation of instructions in other stages. For example, if two stages must use the same piece of data, the control logic assures that the uses are done in the correct sequence.
328:: Fetch the instruction, fetch the operands, do the instruction, write the results. A pipelined computer usually has "pipeline registers" after each stage. These store information from the instruction and calculations so that the
686:
The model of sequential execution assumes that each instruction completes before the next one begins; this assumption is not true on a pipelined processor. A situation where the expected result is problematic is known as a
1150:
stage as scheduled, but the purple instruction is stalled for one cycle at the Fetch stage. The blue instruction, which was due to be fetched during cycle 3, is stalled for one cycle, as is the red instruction after it.
1153:
Because of the bubble (the blue ovals in the illustration), the processor's Decode circuitry is idle during cycle 3. Its
Execute circuitry is idle during cycle 4 and its Write-back circuitry is idle during cycle 5.
912:
that require execution to slow below its ideal rate. A non-pipelined processor executes only a single instruction at a time. The start of the next instruction is delayed not based on hazards but unconditionally.
837:
lets the programmer measure how often particular branches are actually executed and gain insight with which to optimize the code. In some cases, a programmer can handle both the usual case and unusual case with
561:
As the pipeline is made "deeper" (with a greater number of dependent steps), a given step can be implemented with simpler circuitry, which may let the processor clock run faster. Such pipelines may be called
785:
An additional data path can be added that routes a computed value to a future instruction elsewhere in the pipeline before the instruction that produced it has been fully retired, a process called
1208:
Note, however, that, even with the bubble, the processor is still able - at least in this case - to run through the sequence of instructions much faster than a non-pipelined processor could.
886:
between instructions, but a pipelining processor overlaps instructions, so executing an uninterruptible instruction renders portions of ordinary instructions uninterruptible too. The
572:
if it can fetch an instruction on every cycle. Thus, if some instructions or conditions require delays that inhibit fetching new instructions, the processor is not fully pipelined.
809:
A conditional branch is even more problematic. The processor may or may not branch, depending on a calculation that has not yet occurred. Various processors may stall, may attempt
870:
can configure their on-chip cache memories for data-only fetches, or as part of their ordinary memory address space, and avoid such difficulties with self-modifying instructions.
697:
If the processor has the 5 steps listed in the initial illustration (the 'Basic five-stage pipeline' at the start of the article), instruction 1 would be fetched at time
1305:
792:
The processor can locate other instructions which are not dependent on the current ones and which can be immediately executed without hazards, an optimization known as
917:
A pipelined processor's need to organize all its work into modular steps may require the duplication of registers, which increases the latency of some instructions.
858:
can be problematic on a pipelined processor. In this technique, one of the effects of a program is to modify its own upcoming instructions. If the processor has an
1146:
A pipelined processor may deal with hazards by stalling and creating a bubble in the pipeline, resulting in one or more cycles in which nothing useful happens.
2507:
770:
Pipelined processors commonly use three techniques to work as expected when the programmer assumes that each instruction completes before the next one begins:
754:
In some early DSP and RISC processors, the documentation advises programmers to avoid such dependencies in adjacent and nearly adjacent instructions (called
661:
such as vector processors and array processors. One of the early supercomputers was the Cyber series built by
Control Data Corporation. Its main architect,
281:
In the fourth clock cycle (the green column), the earliest instruction is in MEM stage, and the latest instruction has not yet entered the pipeline.
1479:
2618:
1801:
2320:
732:. But the second instruction might get the number from R5 (to copy to R6) in its second step (instruction decode and register fetch) at time
1598:
1259:
2477:
2043:
1860:
1410:
2831:
1823:
527:
91:
2472:
1452:
499:
300:
within a single processor. Pipelining attempts to keep every part of the processor busy with some instruction by dividing incoming
63:
2544:
1441:
1347:
603:
480:
44:
778:, or cease scheduling new instructions until the required values are available. This results in empty slots in the pipeline, or
2826:
2297:
1364:
1274:
506:
309:
70:
3410:
3241:
2365:
1628:
1472:
3251:
2392:
746:
language might not raise these concerns, as the compiler could be designed to generate machine code that avoids hazards.
513:
77:
1519:
839:
2559:
2387:
2360:
1739:
1319:
1288:
739:. It seems that the first instruction would not have incremented the value by then. The above code invokes a hazard.
625:
546:
110:
3374:
2937:
1830:
1796:
1791:
1710:
1675:
495:
59:
3415:
3349:
3246:
2647:
2554:
2355:
1576:
1465:
725:. The first instruction might deposit the incremented number into R5 as its fifth step (register write back) at
279:(IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back).
2375:
2094:
1529:
894:
a single-core system using an infinite loop in which an uninterruptible instruction was always in the pipeline.
688:
681:
607:
484:
48:
2549:
2397:
2370:
2231:
1845:
1806:
1663:
814:
297:
2986:
2748:
2224:
2185:
1840:
1835:
1769:
1581:
817:), each assuming the branch is or is not taken, discarding all work that pertains to the incorrect guess.
2613:
2310:
2008:
1705:
672:'s 470 series general purpose mainframe had a 7-step pipeline, and a patented branch prediction circuit.
375:
Much of the design of a pipelined computer prevents interference between the stages and reduces stalls.
3263:
2910:
2327:
1818:
1786:
1556:
1544:
1524:
3354:
3317:
3307:
1695:
825:
the incorrect code path that has begun execution before resuming execution at the correct location.
520:
84:
3369:
2776:
2712:
2689:
2539:
2501:
2337:
2287:
2282:
1759:
1653:
1561:
1280:
325:
3322:
3105:
2999:
2963:
2880:
2864:
2706:
2495:
2454:
2442:
2305:
2219:
2140:
1905:
1566:
1509:
1447:
879:
596:
473:
321:
37:
1392:. University of Maryland Baltimore County Computer Science and Electrical Engineering Department
3128:
3100:
3010:
2975:
2724:
2718:
2700:
2434:
2428:
2332:
2127:
1928:
1571:
793:
3302:
3211:
2957:
2669:
2487:
2246:
2214:
2172:
2084:
1885:
1700:
1690:
1680:
1670:
1640:
1623:
1488:
1414:
1172:
395:
348:
124:
955:
Generic 4-stage pipeline; the colored boxes represent instructions independent of each other
3332:
3268:
2854:
2576:
2466:
2413:
1945:
1658:
1514:
1496:
863:
305:
289:
364:
usually do more instructions per second because they can do several instructions at once.
8:
3379:
3364:
3184:
3035:
3017:
2981:
2969:
2623:
2570:
2347:
2263:
2145:
2000:
1895:
1754:
1229:
855:
423:
3236:
3228:
3080:
3055:
2859:
2734:
2258:
2199:
2079:
1811:
1539:
1133:
786:
669:
1437:
3189:
3156:
3072:
3004:
2905:
2895:
2885:
2816:
2811:
2806:
2729:
2658:
2564:
2524:
2157:
2107:
2057:
2033:
1915:
1855:
1850:
1732:
1648:
1315:
1284:
859:
810:
1339:
3359:
3292:
3278:
3133:
3040:
2994:
2801:
2796:
2791:
2786:
2781:
2771:
2641:
2608:
2519:
2514:
2423:
2275:
2270:
2253:
2241:
2180:
1744:
1722:
1608:
1586:
1504:
1356:
1230:"Xelerated's Xtraordinary NPU — World's First 40Gb/s Packet Processor Has 200 CPUs"
891:
1389:
372:
sometimes must discard the data in process and restart. This is called a "stall."
3273:
3258:
3206:
3110:
3085:
2922:
2915:
2766:
2761:
2756:
2695:
2603:
2593:
2315:
2150:
2102:
1865:
1749:
1717:
1618:
1613:
1534:
1196:
383:
The number of dependent steps varies with the machine architecture. For example:
1260:"Xelerated Brings Programmable 40 Gbits/S Technology to the Mainstream Ethernet"
1138:
3384:
3218:
3201:
3194:
3090:
2947:
2684:
2598:
2529:
2112:
2074:
2023:
2018:
2013:
1727:
1551:
1032:
The green instruction's results are written back to the register file or memory
887:
822:
775:
691:. Imagine the following two register instructions to a hypothetical processor:
658:
429:
Many designs include pipelines as long as 7, 10 and even 20 stages (as in the
391:
project proposed the terms Fetch, Decode, and
Execute that have become common.
3404:
3179:
3095:
2135:
2117:
1910:
1603:
1311:
834:
651:
647:
2038:
1335:
3389:
3327:
3143:
3120:
2932:
2653:
1591:
662:
324:(CPU) in stages. For example, it might have one stage for each step of the
301:
3174:
3138:
2849:
2821:
2679:
2534:
1457:
643:
388:
1191:
Early pipelined processors without any of these heuristics, such as the
3060:
3050:
3045:
3027:
2927:
2900:
2162:
1995:
1965:
1685:
1167:
867:
866:
and the modification will not take effect. Some processors such as the
813:, and may be able to begin to execute two different program sequences (
759:
755:
610: in this section. Unsourced material may be challenged and removed.
353:
344:
340:
329:
1360:
3151:
3148:
2890:
1960:
1938:
883:
639:
444:
433:
419:
951:
585:
462:
26:
3166:
1985:
743:
443:
cores from Intel, used in the last
Pentium 4 models and their
440:
882:, such as when it swaps two items. A sequential processor permits
1975:
1933:
1192:
1014:
The green instruction is executed (actual operation is performed)
1272:
1990:
1955:
1920:
862:, the original instruction may already have been copied into a
2448:
1980:
1950:
762:
into the code, partly negating the advantages of pipelining.
430:
312:
with different parts of instructions processed in parallel.
3312:
2460:
2380:
1970:
830:
668:
Pipelining was not limited to supercomputers. In 1976, the
448:
1900:
1890:
1340:"Konrad Zuse's Legacy: The Architecture of the Z1 and Z3"
646:
project, though a simple version was used earlier in the
337:
1413:. hpc.serc.iisc.ernet.in. September 2000. Archived from
320:
In a pipelined computer, instructions flow through the
1307:
Design of
Computers and Other Complex Digital Devices
878:
An instruction may be uninterruptible to ensure its
1119:
The execution of all four instructions is completed
487:. Unsourced material may be challenged and removed.
51:. Unsourced material may be challenged and removed.
304:into a series of sequential steps (the eponymous "
1390:"CMSC 411 Lecture 19, Pipelining Data Forwarding"
657:Pipelining began in earnest in the late 1970s in
16:Method of improving instruction-level parallelism
3402:
1074:The execution of purple instruction is completed
1411:"High performance computing, Notes of class 11"
1053:The execution of green instruction is completed
1092:The execution of blue instruction is completed
1473:
1107:The execution of red instruction is completed
1002:The purple instruction is fetched from memory
987:The green instruction is fetched from memory
975:Four instructions are waiting to be executed
2478:Computer performance by orders of magnitude
1453:Counterflow Pipeline Processor Architecture
451:derivatives, have a long 31-stage pipeline.
1487:
1480:
1466:
1303:
1227:
1328:
1273:John Paul Shen, Mikko H. Lipasti (2004).
626:Learn how and when to remove this message
547:Learn how and when to remove this message
315:
111:Learn how and when to remove this message
1137:
950:
898:
806:control to another part of the program.
332:of the next stage can do the next step.
1438:Branch Prediction in the Pentium Family
1348:IEEE Annals of the History of Computing
1266:
704:and its execution would be complete at
638:Seminal uses of pipelining were in the
3403:
1056:The purple instruction is written back
939:
439:The later "Prescott" and "Cedar Mill"
356:and could run at a higher clock rate.
343:than a multicycle computer at a given
1461:
1334:
1142:A bubble in cycle 3 delays execution.
845:
404:Instruction decode and register fetch
2449:Floating-point operations per second
1077:The blue instruction is written back
711:. Instruction 2 would be fetched at
608:adding citations to reliable sources
579:
485:adding citations to reliable sources
456:
49:adding citations to reliable sources
20:
1095:The red instruction is written back
13:
1228:Glaskowsky, Peter (Aug 18, 2003).
1127:
1035:The purple instruction is executed
378:
14:
3427:
1448:ArsTechnica article on pipelining
1431:
1017:The purple instruction is decoded
3375:Semiconductor device fabrication
1059:The blue instruction is executed
999:The green instruction is decoded
782:, in which no work is performed.
694:1: add 1 to R5 2: copy R5 to R6
584:
461:
296:is a technique for implementing
25:
3350:History of general-purpose CPUs
1577:Nondeterministic Turing machine
1370:from the original on 2022-07-03
1080:The red instruction is executed
1038:The blue instruction is decoded
1020:The blue instruction is fetched
742:Writing computer programs in a
595:needs additional citations for
472:needs additional citations for
426:each have a two-stage pipeline.
36:needs additional citations for
1530:Deterministic finite automaton
1403:
1382:
1297:
1252:
1221:
1202:
1185:
1062:The red instruction is decoded
1041:The red instruction is fetched
749:
682:Hazard (computer architecture)
1:
2321:Simultaneous and heterogenous
1215:
948:The execution is as follows:
298:instruction-level parallelism
3005:Integrated memory controller
2987:Translation lookaside buffer
2186:Memory dependence prediction
1629:Random-access stored program
1582:Probabilistic Turing machine
909:
875:Uninterruptible instructions
765:
7:
3411:Superscalar microprocessors
2461:Synaptic updates per second
1161:
800:
10:
3432:
2865:Heterogeneous architecture
1787:Orthogonal instruction set
1557:Alternating Turing machine
1545:Quantum cellular automaton
1131:
823:flushing from the pipeline
679:
675:
575:
568:A processor is said to be
308:") performed by different
3355:Microprocessor chronology
3342:
3318:Dynamic frequency scaling
3291:
3227:
3165:
3119:
3071:
3026:
2946:
2873:
2842:
2747:
2668:
2632:
2586:
2486:
2473:Cache performance metrics
2412:
2346:
2296:
2207:
2198:
2171:
2126:
2093:
2065:
2056:
1876:
1779:
1768:
1639:
1495:
718:and would be complete at
278:
125:Basic five-stage pipeline
3370:Hardware security module
2713:Digital signal processor
2690:Graphics processing unit
2502:Graphics processing unit
1281:McGraw-Hill Professional
1178:
496:"Instruction pipelining"
60:"Instruction pipelining"
3323:Dynamic voltage scaling
3106:Memory address register
3000:Branch target predictor
2964:Address generation unit
2707:Physics processing unit
2496:Central processing unit
2455:Transactions per second
2443:Instructions per second
2366:Array processing (SIMT)
1510:Stored-program computer
1276:Modern Processor Design
851:Self-modifying programs
322:central processing unit
3416:Instruction processing
3129:Hardwired control unit
3011:Memory management unit
2976:Memory management unit
2725:Secure cryptoprocessor
2719:Tensor Processing Unit
2701:Vision processing unit
2435:Cycles per instruction
2429:Instructions per cycle
2376:Associative processing
2067:Instruction pipelining
1489:Processor technologies
1143:
956:
794:out-of-order execution
316:Concept and motivation
294:instruction pipelining
3212:Sum-addressed decoder
2958:Arithmetic logic unit
2085:Classic RISC pipeline
2039:Epiphany architecture
1886:Motorola 68000 series
1234:Microprocessor Report
1173:Classic RISC pipeline
1141:
954:
899:Design considerations
396:classic RISC pipeline
3333:Performance per watt
2911:replacement policies
2577:Package on a package
2467:Performance per watt
2371:Pipelined processing
2141:Tomasulo's algorithm
1946:Clipper architecture
1802:Application-specific
1515:Finite-state machine
864:prefetch input queue
604:improve this article
481:improve this article
290:computer engineering
45:improve this article
3365:Digital electronics
3018:Instruction decoder
2970:Floating-point unit
2624:Soft microprocessor
2571:System in a package
2146:Reservation station
1676:Transport-triggered
1338:(April–June 1997).
1304:Sunggu Lee (2000).
940:Illustrated example
856:self-modifying code
774:The pipeline could
424:PIC microcontroller
413:Register write back
347:, but may increase
127:
3237:Integrated circuit
3081:Processor register
2735:Baseband processor
2080:Operand forwarding
1540:Cellular automaton
1144:
1134:Bubble (computing)
957:
846:Special situations
787:operand forwarding
670:Amdahl Corporation
123:
3398:
3397:
3287:
3286:
2906:Instruction cache
2896:Scratchpad memory
2743:
2742:
2730:Network processor
2659:Network on a chip
2614:Ultra-low-voltage
2565:Multi-chip module
2408:
2407:
2194:
2193:
2181:Branch prediction
2158:Register renaming
2052:
2051:
2034:VISC architecture
1856:Quantum computing
1851:VISC architecture
1733:Secondary storage
1649:Microarchitecture
1609:Register machines
1361:10.1109/85.586067
1125:
1124:
860:instruction cache
854:The technique of
811:branch prediction
636:
635:
628:
557:
556:
549:
531:
401:Instruction fetch
326:von Neumann cycle
286:
285:
121:
120:
113:
95:
3423:
3360:Processor design
3252:Power management
3134:Instruction unit
2995:Branch predictor
2944:
2943:
2642:System on a chip
2584:
2583:
2424:Transistor count
2348:Flynn's taxonomy
2205:
2204:
2063:
2062:
1866:Addressing modes
1777:
1776:
1723:Memory hierarchy
1587:Hypercomputation
1505:Abstract machine
1482:
1475:
1468:
1459:
1458:
1442:Archive.org copy
1426:
1425:
1423:
1422:
1407:
1401:
1400:
1398:
1397:
1386:
1380:
1378:
1376:
1375:
1369:
1344:
1332:
1326:
1325:
1301:
1295:
1294:
1270:
1264:
1263:
1256:
1250:
1249:
1247:
1245:
1225:
1209:
1206:
1200:
1189:
959:
958:
840:branch-free code
650:in 1939 and the
642:project and the
631:
624:
620:
617:
611:
588:
580:
552:
545:
541:
538:
532:
530:
489:
465:
457:
352:delays from the
128:
122:
116:
109:
105:
102:
96:
94:
53:
29:
21:
3431:
3430:
3426:
3425:
3424:
3422:
3421:
3420:
3401:
3400:
3399:
3394:
3380:Tick–tock model
3338:
3294:
3283:
3223:
3207:Address decoder
3161:
3115:
3111:Program counter
3086:Status register
3067:
3022:
2982:Load–store unit
2949:
2942:
2869:
2838:
2739:
2696:Image processor
2671:
2664:
2634:
2628:
2604:Microcontroller
2594:Embedded system
2582:
2482:
2415:
2404:
2342:
2292:
2190:
2167:
2151:Re-order buffer
2122:
2103:Data dependency
2089:
2048:
1878:
1872:
1771:
1770:Instruction set
1764:
1750:Multiprocessing
1718:Cache hierarchy
1711:Register/memory
1635:
1535:Queue automaton
1491:
1486:
1434:
1429:
1420:
1418:
1409:
1408:
1404:
1395:
1393:
1388:
1387:
1383:
1373:
1371:
1367:
1342:
1333:
1329:
1322:
1302:
1298:
1291:
1271:
1267:
1258:
1257:
1253:
1243:
1241:
1226:
1222:
1218:
1213:
1212:
1207:
1203:
1197:Hewlett-Packard
1190:
1186:
1181:
1164:
1136:
1130:
1128:Pipeline bubble
942:
901:
848:
815:eager execution
803:
768:
752:
737:
730:
723:
716:
709:
703:
695:
684:
678:
632:
621:
615:
612:
601:
589:
578:
570:fully pipelined
564:superpipelines.
553:
542:
536:
533:
490:
488:
478:
466:
381:
379:Number of steps
318:
310:processor units
136:
133:
117:
106:
100:
97:
54:
52:
42:
30:
17:
12:
11:
5:
3429:
3419:
3418:
3413:
3396:
3395:
3393:
3392:
3387:
3385:Pin grid array
3382:
3377:
3372:
3367:
3362:
3357:
3352:
3346:
3344:
3340:
3339:
3337:
3336:
3330:
3325:
3320:
3315:
3310:
3305:
3299:
3297:
3289:
3288:
3285:
3284:
3282:
3281:
3276:
3271:
3266:
3261:
3256:
3255:
3254:
3249:
3244:
3233:
3231:
3225:
3224:
3222:
3221:
3219:Barrel shifter
3216:
3215:
3214:
3209:
3202:Binary decoder
3199:
3198:
3197:
3187:
3182:
3177:
3171:
3169:
3163:
3162:
3160:
3159:
3154:
3146:
3141:
3136:
3131:
3125:
3123:
3117:
3116:
3114:
3113:
3108:
3103:
3098:
3093:
3091:Stack register
3088:
3083:
3077:
3075:
3069:
3068:
3066:
3065:
3064:
3063:
3058:
3048:
3043:
3038:
3032:
3030:
3024:
3023:
3021:
3020:
3015:
3014:
3013:
3002:
2997:
2992:
2991:
2990:
2984:
2973:
2967:
2961:
2954:
2952:
2941:
2940:
2935:
2930:
2925:
2920:
2919:
2918:
2913:
2908:
2903:
2898:
2893:
2883:
2877:
2875:
2871:
2870:
2868:
2867:
2862:
2857:
2852:
2846:
2844:
2840:
2839:
2837:
2836:
2835:
2834:
2824:
2819:
2814:
2809:
2804:
2799:
2794:
2789:
2784:
2779:
2774:
2769:
2764:
2759:
2753:
2751:
2745:
2744:
2741:
2740:
2738:
2737:
2732:
2727:
2722:
2716:
2710:
2704:
2698:
2693:
2687:
2685:AI accelerator
2682:
2676:
2674:
2666:
2665:
2663:
2662:
2656:
2651:
2648:Multiprocessor
2645:
2638:
2636:
2630:
2629:
2627:
2626:
2621:
2616:
2611:
2606:
2601:
2599:Microprocessor
2596:
2590:
2588:
2587:By application
2581:
2580:
2574:
2568:
2562:
2557:
2552:
2547:
2542:
2537:
2532:
2530:Tile processor
2527:
2522:
2517:
2512:
2511:
2510:
2499:
2492:
2490:
2484:
2483:
2481:
2480:
2475:
2470:
2464:
2458:
2452:
2446:
2440:
2439:
2438:
2426:
2420:
2418:
2410:
2409:
2406:
2405:
2403:
2402:
2401:
2400:
2390:
2385:
2384:
2383:
2378:
2373:
2368:
2358:
2352:
2350:
2344:
2343:
2341:
2340:
2335:
2330:
2325:
2324:
2323:
2318:
2316:Hyperthreading
2308:
2302:
2300:
2298:Multithreading
2294:
2293:
2291:
2290:
2285:
2280:
2279:
2278:
2268:
2267:
2266:
2261:
2251:
2250:
2249:
2244:
2234:
2229:
2228:
2227:
2222:
2211:
2209:
2202:
2196:
2195:
2192:
2191:
2189:
2188:
2183:
2177:
2175:
2169:
2168:
2166:
2165:
2160:
2155:
2154:
2153:
2148:
2138:
2132:
2130:
2124:
2123:
2121:
2120:
2115:
2110:
2105:
2099:
2097:
2091:
2090:
2088:
2087:
2082:
2077:
2075:Pipeline stall
2071:
2069:
2060:
2054:
2053:
2050:
2049:
2047:
2046:
2041:
2036:
2031:
2028:
2027:
2026:
2024:z/Architecture
2021:
2016:
2011:
2003:
1998:
1993:
1988:
1983:
1978:
1973:
1968:
1963:
1958:
1953:
1948:
1943:
1942:
1941:
1936:
1931:
1923:
1918:
1913:
1908:
1903:
1898:
1893:
1888:
1882:
1880:
1874:
1873:
1871:
1870:
1869:
1868:
1858:
1853:
1848:
1843:
1838:
1833:
1828:
1827:
1826:
1816:
1815:
1814:
1804:
1799:
1794:
1789:
1783:
1781:
1774:
1766:
1765:
1763:
1762:
1757:
1752:
1747:
1742:
1737:
1736:
1735:
1730:
1728:Virtual memory
1720:
1715:
1714:
1713:
1708:
1703:
1698:
1688:
1683:
1678:
1673:
1668:
1667:
1666:
1656:
1651:
1645:
1643:
1637:
1636:
1634:
1633:
1632:
1631:
1626:
1621:
1616:
1606:
1601:
1596:
1595:
1594:
1589:
1584:
1579:
1574:
1569:
1564:
1559:
1552:Turing machine
1549:
1548:
1547:
1542:
1537:
1532:
1527:
1522:
1512:
1507:
1501:
1499:
1493:
1492:
1485:
1484:
1477:
1470:
1462:
1456:
1455:
1450:
1445:
1433:
1432:External links
1430:
1428:
1427:
1402:
1381:
1327:
1320:
1296:
1289:
1265:
1262:. 31 May 2003.
1251:
1219:
1217:
1214:
1211:
1210:
1201:
1183:
1182:
1180:
1177:
1176:
1175:
1170:
1163:
1160:
1132:Main article:
1129:
1126:
1123:
1122:
1121:
1120:
1115:
1111:
1110:
1109:
1108:
1103:
1099:
1098:
1097:
1096:
1093:
1088:
1084:
1083:
1082:
1081:
1078:
1075:
1070:
1066:
1065:
1064:
1063:
1060:
1057:
1054:
1049:
1045:
1044:
1043:
1042:
1039:
1036:
1033:
1028:
1024:
1023:
1022:
1021:
1018:
1015:
1010:
1006:
1005:
1004:
1003:
1000:
995:
991:
990:
989:
988:
983:
979:
978:
977:
976:
971:
967:
966:
963:
941:
938:
937:
936:
932:
931:Predictability
928:
927:
923:
919:
918:
914:
913:
905:
900:
897:
896:
895:
888:Cyrix coma bug
876:
872:
871:
852:
847:
844:
802:
799:
798:
797:
790:
783:
767:
764:
751:
748:
735:
728:
721:
714:
707:
701:
693:
680:Main article:
677:
674:
659:supercomputers
634:
633:
592:
590:
583:
577:
574:
559:
558:
555:
554:
469:
467:
460:
452:
437:
427:
416:
415:
414:
411:
408:
405:
402:
392:
380:
377:
317:
314:
284:
283:
276:
275:
272:
269:
266:
264:
262:
260:
258:
254:
253:
250:
247:
244:
241:
239:
237:
235:
231:
230:
227:
224:
221:
218:
215:
213:
211:
207:
206:
204:
201:
198:
195:
192:
189:
187:
183:
182:
180:
178:
175:
172:
169:
166:
163:
159:
158:
155:
152:
149:
146:
143:
140:
137:
134:
131:
119:
118:
33:
31:
24:
15:
9:
6:
4:
3:
2:
3428:
3417:
3414:
3412:
3409:
3408:
3406:
3391:
3388:
3386:
3383:
3381:
3378:
3376:
3373:
3371:
3368:
3366:
3363:
3361:
3358:
3356:
3353:
3351:
3348:
3347:
3345:
3341:
3334:
3331:
3329:
3326:
3324:
3321:
3319:
3316:
3314:
3311:
3309:
3306:
3304:
3301:
3300:
3298:
3296:
3290:
3280:
3277:
3275:
3272:
3270:
3267:
3265:
3262:
3260:
3257:
3253:
3250:
3248:
3245:
3243:
3240:
3239:
3238:
3235:
3234:
3232:
3230:
3226:
3220:
3217:
3213:
3210:
3208:
3205:
3204:
3203:
3200:
3196:
3193:
3192:
3191:
3188:
3186:
3183:
3181:
3180:Demultiplexer
3178:
3176:
3173:
3172:
3170:
3168:
3164:
3158:
3155:
3153:
3150:
3147:
3145:
3142:
3140:
3137:
3135:
3132:
3130:
3127:
3126:
3124:
3122:
3118:
3112:
3109:
3107:
3104:
3102:
3101:Memory buffer
3099:
3097:
3096:Register file
3094:
3092:
3089:
3087:
3084:
3082:
3079:
3078:
3076:
3074:
3070:
3062:
3059:
3057:
3054:
3053:
3052:
3049:
3047:
3044:
3042:
3039:
3037:
3036:Combinational
3034:
3033:
3031:
3029:
3025:
3019:
3016:
3012:
3009:
3008:
3006:
3003:
3001:
2998:
2996:
2993:
2988:
2985:
2983:
2980:
2979:
2977:
2974:
2971:
2968:
2965:
2962:
2959:
2956:
2955:
2953:
2951:
2945:
2939:
2936:
2934:
2931:
2929:
2926:
2924:
2921:
2917:
2914:
2912:
2909:
2907:
2904:
2902:
2899:
2897:
2894:
2892:
2889:
2888:
2887:
2884:
2882:
2879:
2878:
2876:
2872:
2866:
2863:
2861:
2858:
2856:
2853:
2851:
2848:
2847:
2845:
2841:
2833:
2830:
2829:
2828:
2825:
2823:
2820:
2818:
2815:
2813:
2810:
2808:
2805:
2803:
2800:
2798:
2795:
2793:
2790:
2788:
2785:
2783:
2780:
2778:
2775:
2773:
2770:
2768:
2765:
2763:
2760:
2758:
2755:
2754:
2752:
2750:
2746:
2736:
2733:
2731:
2728:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2697:
2694:
2691:
2688:
2686:
2683:
2681:
2678:
2677:
2675:
2673:
2667:
2660:
2657:
2655:
2652:
2649:
2646:
2643:
2640:
2639:
2637:
2631:
2625:
2622:
2620:
2617:
2615:
2612:
2610:
2607:
2605:
2602:
2600:
2597:
2595:
2592:
2591:
2589:
2585:
2578:
2575:
2572:
2569:
2566:
2563:
2561:
2558:
2556:
2553:
2551:
2548:
2546:
2543:
2541:
2538:
2536:
2533:
2531:
2528:
2526:
2523:
2521:
2518:
2516:
2513:
2509:
2506:
2505:
2503:
2500:
2497:
2494:
2493:
2491:
2489:
2485:
2479:
2476:
2474:
2471:
2468:
2465:
2462:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2436:
2433:
2432:
2430:
2427:
2425:
2422:
2421:
2419:
2417:
2411:
2399:
2396:
2395:
2394:
2391:
2389:
2386:
2382:
2379:
2377:
2374:
2372:
2369:
2367:
2364:
2363:
2362:
2359:
2357:
2354:
2353:
2351:
2349:
2345:
2339:
2336:
2334:
2331:
2329:
2326:
2322:
2319:
2317:
2314:
2313:
2312:
2309:
2307:
2304:
2303:
2301:
2299:
2295:
2289:
2286:
2284:
2281:
2277:
2274:
2273:
2272:
2269:
2265:
2262:
2260:
2257:
2256:
2255:
2252:
2248:
2245:
2243:
2240:
2239:
2238:
2235:
2233:
2230:
2226:
2223:
2221:
2218:
2217:
2216:
2213:
2212:
2210:
2206:
2203:
2201:
2197:
2187:
2184:
2182:
2179:
2178:
2176:
2174:
2170:
2164:
2161:
2159:
2156:
2152:
2149:
2147:
2144:
2143:
2142:
2139:
2137:
2136:Scoreboarding
2134:
2133:
2131:
2129:
2125:
2119:
2118:False sharing
2116:
2114:
2111:
2109:
2106:
2104:
2101:
2100:
2098:
2096:
2092:
2086:
2083:
2081:
2078:
2076:
2073:
2072:
2070:
2068:
2064:
2061:
2059:
2055:
2045:
2042:
2040:
2037:
2035:
2032:
2029:
2025:
2022:
2020:
2017:
2015:
2012:
2010:
2007:
2006:
2004:
2002:
1999:
1997:
1994:
1992:
1989:
1987:
1984:
1982:
1979:
1977:
1974:
1972:
1969:
1967:
1964:
1962:
1959:
1957:
1954:
1952:
1949:
1947:
1944:
1940:
1937:
1935:
1932:
1930:
1927:
1926:
1924:
1922:
1919:
1917:
1914:
1912:
1911:Stanford MIPS
1909:
1907:
1904:
1902:
1899:
1897:
1894:
1892:
1889:
1887:
1884:
1883:
1881:
1875:
1867:
1864:
1863:
1862:
1859:
1857:
1854:
1852:
1849:
1847:
1844:
1842:
1839:
1837:
1834:
1832:
1829:
1825:
1822:
1821:
1820:
1817:
1813:
1810:
1809:
1808:
1805:
1803:
1800:
1798:
1795:
1793:
1790:
1788:
1785:
1784:
1782:
1778:
1775:
1773:
1772:architectures
1767:
1761:
1758:
1756:
1753:
1751:
1748:
1746:
1743:
1741:
1740:Heterogeneous
1738:
1734:
1731:
1729:
1726:
1725:
1724:
1721:
1719:
1716:
1712:
1709:
1707:
1704:
1702:
1699:
1697:
1694:
1693:
1692:
1691:Memory access
1689:
1687:
1684:
1682:
1679:
1677:
1674:
1672:
1669:
1665:
1662:
1661:
1660:
1657:
1655:
1652:
1650:
1647:
1646:
1644:
1642:
1638:
1630:
1627:
1625:
1624:Random-access
1622:
1620:
1617:
1615:
1612:
1611:
1610:
1607:
1605:
1604:Stack machine
1602:
1600:
1597:
1593:
1590:
1588:
1585:
1583:
1580:
1578:
1575:
1573:
1570:
1568:
1565:
1563:
1560:
1558:
1555:
1554:
1553:
1550:
1546:
1543:
1541:
1538:
1536:
1533:
1531:
1528:
1526:
1523:
1521:
1520:with datapath
1518:
1517:
1516:
1513:
1511:
1508:
1506:
1503:
1502:
1500:
1498:
1494:
1490:
1483:
1478:
1476:
1471:
1469:
1464:
1463:
1460:
1454:
1451:
1449:
1446:
1443:
1439:
1436:
1435:
1417:on 2013-12-27
1416:
1412:
1406:
1391:
1385:
1366:
1362:
1358:
1354:
1350:
1349:
1341:
1337:
1331:
1323:
1321:9780130402677
1317:
1313:
1312:Prentice Hall
1309:
1308:
1300:
1292:
1290:9780070570641
1286:
1282:
1278:
1277:
1269:
1261:
1255:
1239:
1235:
1231:
1224:
1220:
1205:
1198:
1195:processor of
1194:
1188:
1184:
1174:
1171:
1169:
1166:
1165:
1159:
1155:
1151:
1147:
1140:
1135:
1118:
1117:
1116:
1113:
1112:
1106:
1105:
1104:
1101:
1100:
1094:
1091:
1090:
1089:
1086:
1085:
1079:
1076:
1073:
1072:
1071:
1068:
1067:
1061:
1058:
1055:
1052:
1051:
1050:
1047:
1046:
1040:
1037:
1034:
1031:
1030:
1029:
1026:
1025:
1019:
1016:
1013:
1012:
1011:
1008:
1007:
1001:
998:
997:
996:
993:
992:
986:
985:
984:
981:
980:
974:
973:
972:
969:
968:
964:
961:
960:
953:
949:
946:
935:instructions.
933:
930:
929:
924:
921:
920:
916:
915:
911:
906:
903:
902:
893:
889:
885:
881:
877:
874:
873:
869:
865:
861:
857:
853:
850:
849:
843:
841:
836:
835:code coverage
832:
826:
824:
818:
816:
812:
807:
795:
791:
788:
784:
781:
777:
773:
772:
771:
763:
761:
757:
747:
745:
740:
738:
731:
724:
717:
710:
700:
692:
690:
683:
673:
671:
666:
664:
660:
655:
653:
649:
645:
641:
630:
627:
619:
609:
605:
599:
598:
593:This section
591:
587:
582:
581:
573:
571:
566:
565:
551:
548:
540:
529:
526:
522:
519:
515:
512:
508:
505:
501:
498: –
497:
493:
492:Find sources:
486:
482:
476:
475:
470:This article
468:
464:
459:
458:
453:
450:
446:
442:
438:
435:
432:
428:
425:
421:
417:
412:
410:Memory access
409:
406:
403:
400:
399:
397:
393:
390:
386:
385:
384:
376:
373:
369:
365:
361:
357:
355:
350:
346:
342:
339:
333:
331:
327:
323:
313:
311:
307:
303:
299:
295:
291:
282:
277:
273:
270:
267:
265:
263:
261:
259:
256:
255:
251:
248:
245:
242:
240:
238:
236:
233:
232:
228:
225:
222:
219:
216:
214:
212:
209:
208:
205:
202:
199:
196:
193:
190:
188:
185:
184:
181:
179:
176:
173:
170:
167:
164:
161:
160:
156:
153:
150:
147:
144:
141:
138:
130:
129:
126:
115:
112:
104:
93:
90:
86:
83:
79:
76:
72:
69:
65:
62: –
61:
57:
56:Find sources:
50:
46:
40:
39:
34:This article
32:
28:
23:
22:
19:
3390:Chip carrier
3328:Clock gating
3247:Mixed-signal
3144:Write buffer
3121:Control unit
2933:Clock signal
2672:accelerators
2654:Cypress PSoC
2311:Simultaneous
2236:
2128:Out-of-order
2066:
1760:Neuromorphic
1641:Architecture
1599:Belt machine
1592:Zeno machine
1525:Hierarchical
1419:. Retrieved
1415:the original
1405:
1394:. Retrieved
1384:
1372:. Retrieved
1352:
1346:
1330:
1306:
1299:
1275:
1268:
1254:
1242:. Retrieved
1237:
1233:
1223:
1204:
1187:
1156:
1152:
1148:
1145:
947:
943:
926:manufacture.
827:
819:
808:
804:
779:
769:
753:
741:
733:
726:
719:
712:
705:
698:
696:
685:
667:
663:Seymour Cray
656:
637:
622:
613:
602:Please help
597:verification
594:
569:
567:
563:
560:
543:
537:October 2020
534:
524:
517:
510:
503:
491:
479:Please help
474:verification
471:
387:The 1956–61
382:
374:
370:
366:
362:
358:
334:
319:
302:instructions
293:
287:
280:
107:
98:
88:
81:
74:
67:
55:
43:Please help
38:verification
35:
18:
3175:Multiplexer
3139:Data buffer
2850:Single-core
2822:bit slicing
2680:Coprocessor
2535:Coprocessor
2416:performance
2338:Cooperative
2328:Speculative
2288:Distributed
2247:Superscalar
2232:Instruction
2200:Parallelism
2173:Speculative
2005:System/3x0
1877:Instruction
1654:Von Neumann
1567:Post–Turing
1355:(2): 5–16.
1336:Rojas, RaĂşl
908:encounters
833:to analyze
756:delay slots
750:Workarounds
644:IBM Stretch
398:comprises:
389:IBM Stretch
354:logic gates
330:logic gates
132:Clock cycle
3405:Categories
3295:management
3190:Multiplier
3051:Logic gate
3041:Sequential
2948:Functional
2928:Clock rate
2901:Data cache
2874:Components
2855:Multi-core
2843:Core count
2333:Preemptive
2237:Pipelining
2220:Bit-serial
2163:Wide-issue
2108:Structural
2030:Tilera ISA
1996:MicroBlaze
1966:ETRAX CRIS
1861:Comparison
1706:Load–store
1686:Endianness
1421:2014-02-08
1396:2020-01-22
1379:(12 pages)
1374:2022-07-03
1240:(8): 12–14
1216:References
1168:Wait state
965:Execution
884:interrupts
868:Zilog Z280
616:March 2019
507:newspapers
345:clock rate
341:throughput
135:Instr. No.
71:newspapers
3229:Circuitry
3149:Microcode
3073:Registers
2916:coherence
2891:CPU cache
2749:Word size
2414:Processor
2058:Execution
1961:DEC Alpha
1939:Power ISA
1755:Cognitive
1562:Universal
880:atomicity
766:Solutions
654:in 1941.
640:ILLIAC II
445:Pentium D
434:Pentium 4
420:Atmel AVR
3167:Datapath
2860:Manycore
2832:variable
2670:Hardware
2306:Temporal
1986:OpenRISC
1681:Cellular
1671:Dataflow
1664:modified
1365:Archived
1244:20 March
1162:See also
801:Branches
744:compiled
441:NetBurst
422:and the
306:pipeline
101:May 2016
3343:Related
3274:Quantum
3264:Digital
3259:Boolean
3157:Counter
3056:Quantum
2817:512-bit
2812:256-bit
2807:128-bit
2650:(MPSoC)
2635:on chip
2633:Systems
2451:(FLOPS)
2264:Process
2113:Control
2095:Hazards
1981:Itanium
1976:Unicore
1934:PowerPC
1659:Harvard
1619:Pointer
1614:Counter
1572:Quantum
1193:PA-RISC
922:Economy
910:hazards
780:bubbles
676:Hazards
576:History
521:scholar
407:Execute
349:latency
85:scholar
3279:Switch
3269:Analog
3007:(IMC)
2978:(MMU)
2827:others
2802:64-bit
2797:48-bit
2792:32-bit
2787:24-bit
2782:16-bit
2777:15-bit
2772:12-bit
2609:Mobile
2525:Stream
2520:Barrel
2515:Vector
2504:(GPU)
2463:(SUPS)
2431:(IPC)
2283:Memory
2276:Vector
2259:Thread
2242:Scalar
2044:Others
1991:RISC-V
1956:SuperH
1925:Power
1921:MIPS-X
1896:PDP-11
1745:Fabric
1497:Models
1318:
1287:
890:would
689:hazard
523:
516:
509:
502:
494:
455:units.
87:
80:
73:
66:
58:
3335:(PPW)
3293:Power
3185:Adder
3061:Array
3028:Logic
2989:(TLB)
2972:(FPU)
2966:(AGU)
2960:(ALU)
2950:units
2886:Cache
2767:8-bit
2762:4-bit
2757:1-bit
2721:(TPU)
2715:(DSP)
2709:(PPU)
2703:(VPU)
2692:(GPU)
2661:(NoC)
2644:(SoC)
2579:(PoP)
2573:(SiP)
2567:(MCM)
2508:GPGPU
2498:(CPU)
2488:Types
2469:(PPW)
2457:(TPS)
2445:(IPS)
2437:(CPI)
2208:Level
2019:S/390
2014:S/370
2009:S/360
1951:SPARC
1929:POWER
1812:TRIPS
1780:Types
1368:(PDF)
1343:(PDF)
1179:Notes
962:Clock
904:Speed
776:stall
528:JSTOR
514:books
431:Intel
92:JSTOR
78:books
3313:ACPI
3046:Glue
2938:FIFO
2881:Core
2619:ASIP
2560:CPLD
2555:FPOA
2550:FPGA
2545:ASIC
2398:SPMD
2393:MIMD
2388:MISD
2381:SWAR
2361:SIMD
2356:SISD
2271:Data
2254:Task
2225:Word
1971:M32R
1916:MIPS
1879:sets
1846:ZISC
1841:NISC
1836:OISC
1831:MISC
1824:EPIC
1819:VLIW
1807:EDGE
1797:RISC
1792:CISC
1701:HUMA
1696:NUMA
1316:ISBN
1285:ISBN
1246:2017
892:hang
831:gcov
760:NOPs
500:news
449:Xeon
447:and
418:The
394:The
252:MEM
226:MEM
200:MEM
174:MEM
64:news
3308:APM
3303:PMU
3195:CPU
3152:ROM
2923:Bus
2540:PAL
2215:Bit
2001:LMC
1906:ARM
1901:x86
1891:VAX
1357:doi
606:by
483:by
338:CPU
288:In
274:EX
271:ID
268:IF
249:EX
246:ID
243:IF
229:WB
223:EX
220:ID
217:IF
203:WB
197:EX
194:ID
191:IF
177:WB
171:EX
168:ID
165:IF
47:by
3407::
3242:3D
1363:.
1353:19
1351:.
1345:.
1314:.
1310:.
1283:.
1279:.
1238:18
1236:.
1232:.
1114:9
1102:8
1087:7
1069:6
1048:5
1027:4
1009:3
994:2
982:1
970:0
842:.
652:Z3
648:Z1
436:).
292:,
257:5
234:4
210:3
186:2
162:1
157:7
154:6
151:5
148:4
145:3
142:2
139:1
1481:e
1474:t
1467:v
1444:)
1440:(
1424:.
1399:.
1377:.
1359::
1324:.
1293:.
1248:.
796:.
789:.
736:3
734:t
729:5
727:t
722:6
720:t
715:2
713:t
708:5
706:t
702:1
699:t
629:)
623:(
618:)
614:(
600:.
550:)
544:(
539:)
535:(
525:·
518:·
511:·
504:·
477:.
114:)
108:(
103:)
99:(
89:·
82:·
75:·
68:·
41:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.