Knowledge

Multithreading (computer architecture)

Source đź“ť

261: 4674: 1943: 1953: 81: 1963: 183: 40: 337:, the other threads can continue taking advantage of the unused computing resources, which may lead to faster overall execution, as these resources would have been idle if only a single thread were executed. Also, if a thread cannot use all the computing resources of the CPU (because instructions depend on each other's result), running another thread may prevent those resources from becoming idle. 621:
In addition to the hardware costs discussed in the block type of multithreading, interleaved multithreading has an additional cost of each pipeline stage tracking the thread ID of the instruction it is processing. Also, since there are more threads being executed concurrently in the pipeline, shared
543:
Additional hardware support for multithreading allows thread switching to be done in one CPU cycle, bringing performance improvements. Also, additional hardware allows each thread to behave as if it were executing alone and not sharing any hardware resources with other threads, minimizing the amount
859:
A major area of research is the thread scheduler that must quickly choose from among the list of ready-to-run threads to execute next, as well as maintain the ready-to-run and stalled thread lists. An important subtopic is the different thread priority schemes that can be used by the scheduler. The
409:
The simplest type of multithreading occurs when one thread runs until it is blocked by an event that normally would create a long-latency stall. Such a stall might be a cache miss that has to access off-chip memory, which might take hundreds of CPU cycles for the data to return. Instead of waiting
768:
In addition to the hardware costs discussed for interleaved multithreading, SMT has the additional cost of each pipeline stage tracking the thread ID of each instruction being processed. Again, shared resources such as caches and TLBs have to be sized for the large number of active threads being
539:
The goal of multithreading hardware support is to allow quick switching between a blocked thread and another thread ready to run. Switching from one thread to another means the hardware switches from using one register set to another. To achieve this goal, the hardware for the program visible
640:. Whereas a normal superscalar processor issues multiple instructions from a single thread every CPU cycle, in simultaneous multithreading (SMT) a superscalar processor can issue instructions from multiple threads every CPU cycle. Recognizing that any single thread has a limited amount of 372:
extensions and performing data prefetches (as a good video encoder might) do not suffer from cache misses or idle computing resources. Such programs therefore do not benefit from hardware multithreading and can indeed see degraded performance due to contention for shared resources.
874:
to be created for each thread. This allows each thread to run its own operating system on the same processor. On the other hand, if only user-mode state is saved, then less hardware is required, which would allow more threads to be active at one time for the same die area or cost.
312:. Even though it is very difficult to further speed up a single thread or single program, most computer systems are actually multitasking among multiple threads or programs. Thus, techniques that improve the throughput of all tasks result in overall performance gains. 617:
This type of multithreading was first called barrel processing, in which the staves of a barrel represent the pipeline stages and their executing threads. Interleaved, preemptive, fine-grained or time-sliced multithreading are more modern terminology.
349:(TLBs). As a result, execution times of a single thread are not improved and can be degraded, even when only one thread is executing, due to lower frequencies or additional pipeline stages that are necessary to accommodate thread-switching hardware. 376:
From the software standpoint, hardware support for multithreading is more visible to software, requiring more changes to both application programs and operating systems than multiprocessing. Hardware techniques used to support
410:
for the stall to resolve, a threaded processor would switch execution to another thread that was ready to run. Only when the data for the previous thread had arrived, would the previous thread be placed back on the list of
577:. Since one thread is relatively independent from other threads, there is less chance of one instruction in one pipelining stage needing an output from an older instruction in the pipeline. Conceptually, it is similar to 540:
registers, as well as some processor control registers (such as the program counter), is replicated. For example, to quickly switch between two threads, the processor is built with two sets of registers.
360:, while a synthetic program just performing a loop of non-optimized dependent floating-point operations actually gains a 100% speed improvement when run in parallel. On the other hand, hand-tuned 536:, in which tasks voluntarily give up execution time when they need to wait upon some type of event. This type of multithreading is known as block, cooperative or coarse-grained multithreading. 98: 53: 4000: 3027: 644:, this type of multithreading tries to exploit parallelism available across multiple threads to decrease the waste associated with unused issue slots. 1999: 145: 117: 914: 3138: 2321: 4090: 2840: 870:
If the multithreading scheme replicates all of the software-visible state, including privileged control registers and TLBs, then it enables
124: 3942: 2118: 2997: 2563: 2380: 951: 59: 3351: 979: 555:
for interrupts. Such schemes can be considered a type of block multithreading among the user program thread and the interrupt threads.
131: 2343: 2992: 3064: 113: 3346: 1696: 581:
multitasking used in operating systems; an analogy would be that the time slice given to each active thread is one CPU cycle.
1721: 941: 4111: 4338: 3761: 2885: 2148: 1992: 1572: 4361: 3771: 2912: 1726: 998: 945: 863:
Another area of research is what type of events should cause a thread switch: cache misses, inter-thread communication,
4250: 2039: 1231: 860:
thread scheduler might be implemented totally in software, totally in hardware, or as a hardware/software combination.
4106: 4356: 4333: 3079: 2907: 2880: 2259: 1878: 1706: 1236: 382: 244: 226: 164: 67: 208: 4699: 3935: 3894: 3457: 2350: 2316: 2311: 2230: 2195: 1966: 1060: 138: 4704: 4328: 4143: 3869: 3766: 3167: 3074: 2875: 2096: 1985: 1354: 200: 4435: 4349: 4298: 2895: 2614: 2049: 1645: 1607: 1264: 972: 193: 102: 17: 4659: 4493: 4344: 4031: 3069: 2917: 2890: 2751: 2365: 2326: 2183: 1787: 1764: 1494: 1484: 844: 773: 641: 301: 4719: 3506: 3268: 2744: 2705: 2360: 2355: 2289: 2101: 1868: 1456: 1364: 1269: 1045: 1030: 346: 4714: 4678: 4624: 4084: 3928: 3133: 2830: 2528: 2225: 1956: 1691: 1189: 631: 4603: 4398: 4283: 4245: 4095: 3985: 3783: 3430: 2847: 2338: 2306: 2076: 2064: 2044: 1928: 1577: 894: 788: 533: 357: 622:
resources such as caches and TLBs need to be larger to avoid thrashing between the different threads.
544:
of software changes needed within the application and the operating system to support multithreading.
4619: 4598: 4543: 4430: 4420: 4393: 4255: 3874: 3837: 3827: 2215: 1946: 1873: 1848: 1711: 1359: 965: 921: 378: 285: 4709: 4573: 4199: 4138: 4051: 3889: 3296: 3232: 3209: 3059: 3021: 2857: 2807: 2802: 2279: 2173: 2081: 1797: 1630: 1216: 1085: 823: 819: 815: 4634: 4629: 4488: 4079: 3842: 3625: 3519: 3483: 3400: 3384: 3226: 3015: 2974: 2962: 2825: 2739: 2660: 2425: 2086: 2029: 1858: 1792: 1683: 1499: 1159: 848: 762: 399: 345:
Multiple threads can interfere with each other when sharing hardware resources such as caches or
277: 204: 91: 4373: 4305: 4209: 4101: 4056: 3648: 3620: 3530: 3495: 3244: 3238: 3220: 2954: 2948: 2852: 2756: 2647: 2586: 2448: 2091: 1923: 1754: 1635: 1402: 1392: 1387: 578: 309: 4465: 4425: 4378: 4368: 4163: 4026: 3965: 3822: 3731: 3477: 3189: 3007: 2766: 2734: 2692: 2604: 2405: 2220: 2210: 2200: 2190: 2160: 2143: 2008: 1893: 1863: 1853: 1749: 1663: 1539: 1479: 1446: 1436: 1319: 1284: 1274: 1211: 1080: 1055: 1050: 1015: 637: 365: 269: 4405: 4293: 4288: 4278: 4265: 4061: 3852: 3788: 3374: 3096: 2986: 2933: 2465: 2178: 2034: 2016: 1653: 1625: 1597: 1592: 1421: 1397: 1349: 1332: 1327: 1309: 1299: 1294: 1256: 1206: 1201: 1118: 1064: 864: 574: 305: 281: 8: 4568: 4523: 4323: 4189: 3899: 3884: 3704: 3555: 3537: 3501: 3489: 3143: 3090: 2867: 2783: 2665: 2520: 2415: 2274: 1918: 1843: 1759: 1744: 1509: 1289: 1246: 1241: 1138: 1128: 1100: 4593: 4442: 4415: 4240: 4204: 4194: 4153: 3995: 3975: 3970: 3951: 3756: 3748: 3600: 3575: 3379: 3254: 2778: 2719: 2599: 2331: 2059: 1883: 1782: 1658: 1615: 1524: 1466: 1451: 1441: 1226: 1025: 28: 952:
Operating System | Difference between Multitasking, Multithreading and Multiprocessing
4639: 4315: 4273: 4168: 3709: 3676: 3592: 3524: 3425: 3415: 3405: 3336: 3331: 3326: 3249: 3178: 3084: 3044: 2677: 2627: 2577: 2553: 2435: 2375: 2370: 2252: 2168: 1903: 1833: 1812: 1774: 1582: 1549: 1529: 1221: 1133: 1007: 361: 765:" is used to denote when instructions from only one thread can be issued at a time. 4649: 4448: 4383: 4230: 4046: 4041: 4036: 4005: 3879: 3812: 3798: 3653: 3560: 3514: 3321: 3316: 3311: 3306: 3301: 3291: 3161: 3128: 3039: 3034: 2943: 2795: 2790: 2773: 2761: 2700: 2264: 2242: 2128: 2106: 2024: 1736: 1620: 1587: 1382: 1304: 1193: 1179: 1174: 1123: 1110: 1035: 988: 827: 564: 411: 4513: 4453: 4388: 4235: 4225: 4158: 4148: 3990: 3980: 3793: 3778: 3726: 3630: 3605: 3442: 3435: 3286: 3281: 3276: 3215: 3123: 3113: 2835: 2670: 2622: 2385: 2269: 2237: 2138: 2133: 2054: 1807: 1701: 1673: 1567: 1519: 1504: 1489: 1344: 1339: 1279: 1169: 1143: 1095: 1040: 889: 871: 570: 548: 321: 334: 4644: 4460: 4117: 4010: 3904: 3738: 3721: 3714: 3610: 3467: 3204: 3118: 3049: 2632: 2594: 2543: 2538: 2533: 2247: 2071: 1913: 1817: 1716: 1562: 1534: 552: 4693: 4533: 4410: 3699: 3615: 2655: 2637: 2430: 2123: 1802: 1090: 830: 2558: 4133: 3909: 3847: 3663: 3640: 3452: 3173: 2111: 1898: 1557: 4654: 3694: 3658: 3369: 3341: 3199: 3054: 1977: 1888: 1514: 1426: 884: 781: 260: 3580: 3570: 3565: 3547: 3447: 3420: 2682: 2515: 2485: 2205: 1908: 1838: 1431: 1164: 1020: 264:
A process with two threads of execution, running on a single processor
257:
Ability of a CPU to provide multiple threads of execution concurrently
4528: 4503: 3920: 3671: 3668: 3410: 2480: 2458: 1413: 1374: 761:
To distinguish the other types of multithreading from SMT, the term "
551:
and embedded processors have multiple register banks to allow quick
211:. Statements consisting only of original research should be removed. 80: 4578: 4558: 4483: 3686: 2505: 1474: 957: 837: 297: 4583: 4563: 4538: 4173: 2495: 2453: 532:
Conceptually, it is similar to cooperative multi-tasking used in
475:
is issued, which is a load instruction that misses in all caches.
369: 4553: 4548: 2510: 2475: 2440: 811: 807: 803: 799: 795: 777: 385:. Thread scheduling is also a major problem in multithreading. 304:
have stalled since the late 1990s. This allowed the concept of
2968: 2500: 2470: 785: 353: 569:
The purpose of Fine grained multithreading is to remove all
4588: 4518: 4508: 3832: 2980: 2900: 2490: 834: 915:"Intel Hyper-Threading Technology, Technical User's Guide" 4498: 4475: 2420: 2410: 841: 792: 948:, March 2003, by Theo Ungerer, Borut Robi and Jurij Silc 393: 300:
has become more popular as efforts to further exploit
636:
The most advanced type of multithreading applies to
942:
A Survey of Processors with Explicit Multithreading
105:. Unsourced material may be challenged and removed. 315:Two major techniques for throughput computing are 4691: 404: 381:often parallel the software techniques used for 308:to re-emerge from the more specialized field of 485:: thread scheduler invoked, switches to thread 625: 558: 3936: 1993: 997:Note: This template roughly follows the 2012 973: 2998:Computer performance by orders of magnitude 854: 114:"Multithreading" computer architecture 68:Learn how and when to remove these messages 3943: 3929: 2007: 2000: 1986: 980: 966: 388: 245:Learn how and when to remove this message 227:Learn how and when to remove this message 165:Learn how and when to remove this message 259: 14: 4692: 3950: 1697:Knowledge representation and reasoning 356:claims up to 30% improvement with its 3924: 1981: 1722:Philosophy of artificial intelligence 961: 2969:Floating-point operations per second 1041:Energy consumption (Green computing) 987: 176: 103:adding citations to reliable sources 74: 33: 1727:Distributed artificial intelligence 999:ACM Computing Classification System 394:Interleaved/Temporal multithreading 24: 1232:Integrated development environment 25: 4731: 1707:Automated planning and scheduling 1237:Software configuration management 935: 49:This article has multiple issues. 4673: 4672: 3895:Semiconductor device fabrication 1961: 1951: 1942: 1941: 340: 181: 79: 38: 4144:Analysis of parallel algorithms 3870:History of general-purpose CPUs 2097:Nondeterministic Turing machine 1952: 1355:Computational complexity theory 90:needs additional citations for 57:or discuss these issues on the 2050:Deterministic finite automaton 1139:Network performance evaluation 907: 757:are all simultaneously issued. 718:are all simultaneously issued. 13: 1: 4091:Simultaneous and heterogenous 2841:Simultaneous and heterogenous 1510:Multimedia information system 1495:Geographic information system 1485:Enterprise information system 1074:Computer systems organization 900: 642:instruction-level parallelism 609:: an instruction from thread 595:: an instruction from thread 405:Coarse-grained multithreading 347:translation lookaside buffers 328: 302:instruction-level parallelism 280:(CPU) (or a single core in a 27:For threads in software, see 4679:Category: Parallel computing 3525:Integrated memory controller 3507:Translation lookaside buffer 2706:Memory dependence prediction 2149:Random-access stored program 2102:Probabilistic Turing machine 1869:Computational social science 1457:Theoretical computer science 1270:Software development process 1046:Electronic design automation 1031:Very Large Scale Integration 954:GeeksforGeeks, 6 Sept. 2018. 920:. p. 13. Archived from 7: 2981:Synaptic updates per second 1692:Natural language processing 1480:Information storage systems 878: 632:Simultaneous multithreading 626:Simultaneous multithreading 559:Fine grained multithreading 534:real-time operating systems 352:Overall efficiency varies; 291: 207:the claims made and adding 10: 4736: 3986:High-performance computing 3385:Heterogeneous architecture 2307:Orthogonal instruction set 2077:Alternating Turing machine 2065:Quantum cellular automaton 1608:Human–computer interaction 1578:Intrusion detection system 1490:Social information systems 1475:Database management system 895:Speculative multithreading 789:Hyper-Threading Technology 678:are simultaneously issued. 629: 573:stalls from the execution 562: 397: 358:Hyper-Threading Technology 333:If a thread gets a lot of 26: 4668: 4620:Automatic parallelization 4612: 4474: 4314: 4264: 4256:Application checkpointing 4218: 4182: 4126: 4070: 4019: 3958: 3875:Microprocessor chronology 3862: 3838:Dynamic frequency scaling 3811: 3747: 3685: 3639: 3591: 3546: 3466: 3393: 3362: 3267: 3188: 3152: 3106: 3006: 2993:Cache performance metrics 2932: 2866: 2816: 2727: 2718: 2691: 2646: 2613: 2585: 2576: 2396: 2299: 2288: 2159: 2015: 1937: 1874:Computational engineering 1849:Computational mathematics 1826: 1773: 1735: 1682: 1644: 1606: 1548: 1465: 1411: 1373: 1318: 1255: 1188: 1152: 1109: 1073: 1006: 995: 3890:Hardware security module 3233:Digital signal processor 3210:Graphics processing unit 3022:Graphics processing unit 1884:Computational healthcare 1879:Differentiable computing 1798:Graphics processing unit 1217:Domain-specific language 1086:Computational complexity 855:Implementation specifics 772:Implementations include 4700:Central processing unit 4635:Embarrassingly parallel 4630:Deterministic algorithm 3843:Dynamic voltage scaling 3626:Memory address register 3520:Branch target predictor 3484:Address generation unit 3227:Physics processing unit 3016:Central processing unit 2975:Transactions per second 2963:Instructions per second 2886:Array processing (SIMT) 2030:Stored-program computer 1859:Computational chemistry 1793:Photograph manipulation 1684:Artificial intelligence 1500:Decision support system 763:temporal multithreading 400:Temporal multithreading 389:Types of multithreading 278:central processing unit 4705:Instruction processing 4350:Associative processing 4306:Non-blocking algorithm 4112:Clustered multi-thread 3649:Hardwired control unit 3531:Memory management unit 3496:Memory management unit 3245:Secure cryptoprocessor 3239:Tensor Processing Unit 3221:Vision processing unit 2955:Cycles per instruction 2949:Instructions per cycle 2896:Associative processing 2587:Instruction pipelining 2009:Processor technologies 1924:Educational technology 1755:Reinforcement learning 1505:Process control system 1403:Computational geometry 1393:Algorithmic efficiency 1388:Analysis of algorithms 1036:Systems on Chip (SoCs) 638:superscalar processors 310:transaction processing 284:) to provide multiple 265: 4466:Hardware acceleration 4379:Superscalar processor 4369:Dataflow architecture 3966:Distributed computing 3732:Sum-addressed decoder 3478:Arithmetic logic unit 2605:Classic RISC pipeline 2559:Epiphany architecture 2406:Motorola 68000 series 1894:Electronic publishing 1864:Computational biology 1854:Computational physics 1750:Unsupervised learning 1664:Distributed computing 1540:Information retrieval 1447:Mathematical analysis 1437:Mathematical software 1320:Theory of computation 1285:Software construction 1275:Requirements analysis 1153:Software organization 1081:Computer architecture 1051:Hardware acceleration 1016:Printed circuit board 383:computer multitasking 270:computer architecture 263: 4345:Pipelined processing 4294:Explicit parallelism 4289:Implicit parallelism 4279:Dataflow programming 3853:Performance per watt 3431:replacement policies 3097:Package on a package 2987:Performance per watt 2891:Pipelined processing 2661:Tomasulo's algorithm 2466:Clipper architecture 2322:Application-specific 2035:Finite-state machine 1654:Concurrent computing 1626:Ubiquitous computing 1598:Application security 1593:Information security 1422:Discrete mathematics 1398:Randomized algorithm 1350:Computability theory 1328:Model of computation 1300:Software maintenance 1295:Software engineering 1257:Software development 1207:Programming language 1202:Programming paradigm 1119:Network architecture 851:microarchitectures. 306:throughput computing 286:threads of execution 282:multi-core processor 276:is the ability of a 99:improve this article 4720:Threads (computing) 4569:Parallel Extensions 4374:Pipelined processor 3885:Digital electronics 3538:Instruction decoder 3490:Floating-point unit 3144:Soft microprocessor 3091:System in a package 2666:Reservation station 2196:Transport-triggered 1929:Document management 1919:Operations research 1844:Enterprise software 1760:Multi-task learning 1745:Supervised learning 1467:Information systems 1290:Software deployment 1247:Software repository 1101:Real-time computing 296:The multithreading 4715:Parallel computing 4443:Massively parallel 4421:distributed shared 4241:Cache invalidation 4205:Instruction window 3996:Manycore processor 3976:Massively parallel 3971:Parallel computing 3952:Parallel computing 3757:Integrated circuit 3601:Processor register 3255:Baseband processor 2600:Operand forwarding 2060:Cellular automaton 1712:Search methodology 1659:Parallel computing 1616:Interaction design 1525:Computing platform 1452:Numerical analysis 1442:Information theory 1227:Software framework 1190:Software notations 1129:Network components 1026:Integrated circuit 710:, and instruction 266: 192:possibly contains 29:Thread (computing) 4687: 4686: 4640:Parallel slowdown 4274:Stream processing 4164:Karp–Flatt metric 3918: 3917: 3807: 3806: 3426:Instruction cache 3416:Scratchpad memory 3263: 3262: 3250:Network processor 3179:Network on a chip 3134:Ultra-low-voltage 3085:Multi-chip module 2928: 2927: 2714: 2713: 2701:Branch prediction 2678:Register renaming 2572: 2571: 2554:VISC architecture 2376:Quantum computing 2371:VISC architecture 2253:Secondary storage 2169:Microarchitecture 2129:Register machines 1975: 1974: 1904:Electronic voting 1834:Quantum Computing 1827:Applied computing 1813:Image compression 1583:Hardware security 1573:Security services 1530:Digital marketing 1310:Open-source model 1222:Modeling language 1134:Network scheduler 867:completion, etc. 784:(not completed), 739:and instructions 553:context switching 547:Many families of 362:assembly language 255: 254: 247: 237: 236: 229: 194:original research 175: 174: 167: 149: 72: 16:(Redirected from 4727: 4676: 4675: 4650:Software lockout 4449:Computer cluster 4384:Vector processor 4339:Array processing 4324:Flynn's taxonomy 4231:Memory coherence 4006:Computer network 3945: 3938: 3931: 3922: 3921: 3880:Processor design 3772:Power management 3654:Instruction unit 3515:Branch predictor 3464: 3463: 3162:System on a chip 3104: 3103: 2944:Transistor count 2868:Flynn's taxonomy 2725: 2724: 2583: 2582: 2386:Addressing modes 2297: 2296: 2243:Memory hierarchy 2107:Hypercomputation 2025:Abstract machine 2002: 1995: 1988: 1979: 1978: 1965: 1964: 1955: 1954: 1945: 1944: 1765:Cross-validation 1737:Machine learning 1621:Social computing 1588:Network security 1383:Algorithm design 1305:Programming team 1265:Control variable 1242:Software library 1180:Software quality 1175:Operating system 1124:Network protocol 989:Computer science 982: 975: 968: 959: 958: 929: 928: 926: 919: 911: 872:virtual machines 828:Sun Microsystems 756: 752: 745: 738: 734: 727: 717: 713: 709: 705: 698: 694: 687: 677: 673: 670:and instruction 669: 665: 658: 654: 612: 608: 598: 594: 565:Barrel processor 549:microcontrollers 527: 523: 516: 506: 502: 498: 488: 484: 474: 470: 463: 453: 449: 442: 432: 428: 424: 250: 243: 232: 225: 221: 218: 212: 209:inline citations 185: 184: 177: 170: 163: 159: 156: 150: 148: 107: 83: 75: 64: 42: 41: 34: 21: 4735: 4734: 4730: 4729: 4728: 4726: 4725: 4724: 4710:Microprocessors 4690: 4689: 4688: 4683: 4664: 4608: 4514:Coarray Fortran 4470: 4454:Beowulf cluster 4310: 4260: 4251:Synchronization 4236:Cache coherence 4226:Multiprocessing 4214: 4178: 4159:Cost efficiency 4154:Gustafson's law 4122: 4066: 4015: 3991:Multiprocessing 3981:Cloud computing 3954: 3949: 3919: 3914: 3900:Tick–tock model 3858: 3814: 3803: 3743: 3727:Address decoder 3681: 3635: 3631:Program counter 3606:Status register 3587: 3542: 3502:Load–store unit 3469: 3462: 3389: 3358: 3259: 3216:Image processor 3191: 3184: 3154: 3148: 3124:Microcontroller 3114:Embedded system 3102: 3002: 2935: 2924: 2862: 2812: 2710: 2687: 2671:Re-order buffer 2642: 2623:Data dependency 2609: 2568: 2398: 2392: 2291: 2290:Instruction set 2284: 2270:Multiprocessing 2238:Cache hierarchy 2231:Register/memory 2155: 2055:Queue automaton 2011: 2006: 1976: 1971: 1962: 1933: 1914:Word processing 1822: 1808:Virtual reality 1769: 1731: 1702:Computer vision 1678: 1674:Multiprocessing 1640: 1602: 1568:Security hacker 1544: 1520:Digital library 1461: 1412:Mathematics of 1407: 1369: 1345:Automata theory 1340:Formal language 1314: 1280:Software design 1251: 1184: 1170:Virtual machine 1148: 1144:Network service 1105: 1096:Embedded system 1069: 1002: 991: 986: 938: 933: 932: 924: 917: 913: 912: 908: 903: 890:Super-threading 881: 857: 754: 747: 740: 736: 729: 722: 715: 711: 707: 700: 696: 689: 682: 675: 671: 667: 660: 656: 655:: instructions 652: 634: 628: 610: 603: 596: 589: 571:data dependency 567: 561: 525: 518: 511: 504: 500: 493: 486: 479: 472: 465: 458: 451: 444: 437: 430: 426: 422: 407: 402: 396: 391: 364:programs using 343: 331: 322:multiprocessing 294: 258: 251: 240: 239: 238: 233: 222: 216: 213: 198: 186: 182: 171: 160: 154: 151: 108: 106: 96: 84: 43: 39: 32: 23: 22: 15: 12: 11: 5: 4733: 4723: 4722: 4717: 4712: 4707: 4702: 4685: 4684: 4682: 4681: 4669: 4666: 4665: 4663: 4662: 4657: 4652: 4647: 4645:Race condition 4642: 4637: 4632: 4627: 4622: 4616: 4614: 4610: 4609: 4607: 4606: 4601: 4596: 4591: 4586: 4581: 4576: 4571: 4566: 4561: 4556: 4551: 4546: 4541: 4536: 4531: 4526: 4521: 4516: 4511: 4506: 4501: 4496: 4491: 4486: 4480: 4478: 4472: 4471: 4469: 4468: 4463: 4458: 4457: 4456: 4446: 4440: 4439: 4438: 4433: 4428: 4423: 4418: 4413: 4403: 4402: 4401: 4396: 4389:Multiprocessor 4386: 4381: 4376: 4371: 4366: 4365: 4364: 4359: 4354: 4353: 4352: 4347: 4342: 4331: 4320: 4318: 4312: 4311: 4309: 4308: 4303: 4302: 4301: 4296: 4291: 4281: 4276: 4270: 4268: 4262: 4261: 4259: 4258: 4253: 4248: 4243: 4238: 4233: 4228: 4222: 4220: 4216: 4215: 4213: 4212: 4207: 4202: 4197: 4192: 4186: 4184: 4180: 4179: 4177: 4176: 4171: 4166: 4161: 4156: 4151: 4146: 4141: 4136: 4130: 4128: 4124: 4123: 4121: 4120: 4118:Hardware scout 4115: 4109: 4104: 4099: 4093: 4088: 4082: 4076: 4074: 4072:Multithreading 4068: 4067: 4065: 4064: 4059: 4054: 4049: 4044: 4039: 4034: 4029: 4023: 4021: 4017: 4016: 4014: 4013: 4011:Systolic array 4008: 4003: 3998: 3993: 3988: 3983: 3978: 3973: 3968: 3962: 3960: 3956: 3955: 3948: 3947: 3940: 3933: 3925: 3916: 3915: 3913: 3912: 3907: 3905:Pin grid array 3902: 3897: 3892: 3887: 3882: 3877: 3872: 3866: 3864: 3860: 3859: 3857: 3856: 3850: 3845: 3840: 3835: 3830: 3825: 3819: 3817: 3809: 3808: 3805: 3804: 3802: 3801: 3796: 3791: 3786: 3781: 3776: 3775: 3774: 3769: 3764: 3753: 3751: 3745: 3744: 3742: 3741: 3739:Barrel shifter 3736: 3735: 3734: 3729: 3722:Binary decoder 3719: 3718: 3717: 3707: 3702: 3697: 3691: 3689: 3683: 3682: 3680: 3679: 3674: 3666: 3661: 3656: 3651: 3645: 3643: 3637: 3636: 3634: 3633: 3628: 3623: 3618: 3613: 3611:Stack register 3608: 3603: 3597: 3595: 3589: 3588: 3586: 3585: 3584: 3583: 3578: 3568: 3563: 3558: 3552: 3550: 3544: 3543: 3541: 3540: 3535: 3534: 3533: 3522: 3517: 3512: 3511: 3510: 3504: 3493: 3487: 3481: 3474: 3472: 3461: 3460: 3455: 3450: 3445: 3440: 3439: 3438: 3433: 3428: 3423: 3418: 3413: 3403: 3397: 3395: 3391: 3390: 3388: 3387: 3382: 3377: 3372: 3366: 3364: 3360: 3359: 3357: 3356: 3355: 3354: 3344: 3339: 3334: 3329: 3324: 3319: 3314: 3309: 3304: 3299: 3294: 3289: 3284: 3279: 3273: 3271: 3265: 3264: 3261: 3260: 3258: 3257: 3252: 3247: 3242: 3236: 3230: 3224: 3218: 3213: 3207: 3205:AI accelerator 3202: 3196: 3194: 3186: 3185: 3183: 3182: 3176: 3171: 3168:Multiprocessor 3165: 3158: 3156: 3150: 3149: 3147: 3146: 3141: 3136: 3131: 3126: 3121: 3119:Microprocessor 3116: 3110: 3108: 3107:By application 3101: 3100: 3094: 3088: 3082: 3077: 3072: 3067: 3062: 3057: 3052: 3050:Tile processor 3047: 3042: 3037: 3032: 3031: 3030: 3019: 3012: 3010: 3004: 3003: 3001: 3000: 2995: 2990: 2984: 2978: 2972: 2966: 2960: 2959: 2958: 2946: 2940: 2938: 2930: 2929: 2926: 2925: 2923: 2922: 2921: 2920: 2910: 2905: 2904: 2903: 2898: 2893: 2888: 2878: 2872: 2870: 2864: 2863: 2861: 2860: 2855: 2850: 2845: 2844: 2843: 2838: 2836:Hyperthreading 2828: 2822: 2820: 2818:Multithreading 2814: 2813: 2811: 2810: 2805: 2800: 2799: 2798: 2788: 2787: 2786: 2781: 2771: 2770: 2769: 2764: 2754: 2749: 2748: 2747: 2742: 2731: 2729: 2722: 2716: 2715: 2712: 2711: 2709: 2708: 2703: 2697: 2695: 2689: 2688: 2686: 2685: 2680: 2675: 2674: 2673: 2668: 2658: 2652: 2650: 2644: 2643: 2641: 2640: 2635: 2630: 2625: 2619: 2617: 2611: 2610: 2608: 2607: 2602: 2597: 2595:Pipeline stall 2591: 2589: 2580: 2574: 2573: 2570: 2569: 2567: 2566: 2561: 2556: 2551: 2548: 2547: 2546: 2544:z/Architecture 2541: 2536: 2531: 2523: 2518: 2513: 2508: 2503: 2498: 2493: 2488: 2483: 2478: 2473: 2468: 2463: 2462: 2461: 2456: 2451: 2443: 2438: 2433: 2428: 2423: 2418: 2413: 2408: 2402: 2400: 2394: 2393: 2391: 2390: 2389: 2388: 2378: 2373: 2368: 2363: 2358: 2353: 2348: 2347: 2346: 2336: 2335: 2334: 2324: 2319: 2314: 2309: 2303: 2301: 2294: 2286: 2285: 2283: 2282: 2277: 2272: 2267: 2262: 2257: 2256: 2255: 2250: 2248:Virtual memory 2240: 2235: 2234: 2233: 2228: 2223: 2218: 2208: 2203: 2198: 2193: 2188: 2187: 2186: 2176: 2171: 2165: 2163: 2157: 2156: 2154: 2153: 2152: 2151: 2146: 2141: 2136: 2126: 2121: 2116: 2115: 2114: 2109: 2104: 2099: 2094: 2089: 2084: 2079: 2072:Turing machine 2069: 2068: 2067: 2062: 2057: 2052: 2047: 2042: 2032: 2027: 2021: 2019: 2013: 2012: 2005: 2004: 1997: 1990: 1982: 1973: 1972: 1970: 1969: 1959: 1949: 1938: 1935: 1934: 1932: 1931: 1926: 1921: 1916: 1911: 1906: 1901: 1896: 1891: 1886: 1881: 1876: 1871: 1866: 1861: 1856: 1851: 1846: 1841: 1836: 1830: 1828: 1824: 1823: 1821: 1820: 1818:Solid modeling 1815: 1810: 1805: 1800: 1795: 1790: 1785: 1779: 1777: 1771: 1770: 1768: 1767: 1762: 1757: 1752: 1747: 1741: 1739: 1733: 1732: 1730: 1729: 1724: 1719: 1717:Control method 1714: 1709: 1704: 1699: 1694: 1688: 1686: 1680: 1679: 1677: 1676: 1671: 1669:Multithreading 1666: 1661: 1656: 1650: 1648: 1642: 1641: 1639: 1638: 1633: 1628: 1623: 1618: 1612: 1610: 1604: 1603: 1601: 1600: 1595: 1590: 1585: 1580: 1575: 1570: 1565: 1563:Formal methods 1560: 1554: 1552: 1546: 1545: 1543: 1542: 1537: 1535:World Wide Web 1532: 1527: 1522: 1517: 1512: 1507: 1502: 1497: 1492: 1487: 1482: 1477: 1471: 1469: 1463: 1462: 1460: 1459: 1454: 1449: 1444: 1439: 1434: 1429: 1424: 1418: 1416: 1409: 1408: 1406: 1405: 1400: 1395: 1390: 1385: 1379: 1377: 1371: 1370: 1368: 1367: 1362: 1357: 1352: 1347: 1342: 1337: 1336: 1335: 1324: 1322: 1316: 1315: 1313: 1312: 1307: 1302: 1297: 1292: 1287: 1282: 1277: 1272: 1267: 1261: 1259: 1253: 1252: 1250: 1249: 1244: 1239: 1234: 1229: 1224: 1219: 1214: 1209: 1204: 1198: 1196: 1186: 1185: 1183: 1182: 1177: 1172: 1167: 1162: 1156: 1154: 1150: 1149: 1147: 1146: 1141: 1136: 1131: 1126: 1121: 1115: 1113: 1107: 1106: 1104: 1103: 1098: 1093: 1088: 1083: 1077: 1075: 1071: 1070: 1068: 1067: 1058: 1053: 1048: 1043: 1038: 1033: 1028: 1023: 1018: 1012: 1010: 1004: 1003: 996: 993: 992: 985: 984: 977: 970: 962: 956: 955: 949: 937: 936:External links 934: 931: 930: 927:on 2010-08-21. 905: 904: 902: 899: 898: 897: 892: 887: 880: 877: 856: 853: 759: 758: 728:: instruction 719: 699:, instruction 688:: instruction 679: 630:Main article: 627: 624: 615: 614: 600: 563:Main article: 560: 557: 530: 529: 517:: instruction 508: 499:: instruction 490: 476: 464:: instruction 455: 443:: instruction 434: 425:: instruction 406: 403: 398:Main article: 395: 392: 390: 387: 379:multithreading 342: 339: 330: 327: 317:multithreading 293: 290: 274:multithreading 256: 253: 252: 235: 234: 189: 187: 180: 173: 172: 87: 85: 78: 73: 47: 46: 44: 37: 18:Multi-threaded 9: 6: 4: 3: 2: 4732: 4721: 4718: 4716: 4713: 4711: 4708: 4706: 4703: 4701: 4698: 4697: 4695: 4680: 4671: 4670: 4667: 4661: 4658: 4656: 4653: 4651: 4648: 4646: 4643: 4641: 4638: 4636: 4633: 4631: 4628: 4626: 4623: 4621: 4618: 4617: 4615: 4611: 4605: 4602: 4600: 4597: 4595: 4592: 4590: 4587: 4585: 4582: 4580: 4577: 4575: 4572: 4570: 4567: 4565: 4562: 4560: 4557: 4555: 4552: 4550: 4547: 4545: 4542: 4540: 4537: 4535: 4534:Global Arrays 4532: 4530: 4527: 4525: 4522: 4520: 4517: 4515: 4512: 4510: 4507: 4505: 4502: 4500: 4497: 4495: 4492: 4490: 4487: 4485: 4482: 4481: 4479: 4477: 4473: 4467: 4464: 4462: 4461:Grid computer 4459: 4455: 4452: 4451: 4450: 4447: 4444: 4441: 4437: 4434: 4432: 4429: 4427: 4424: 4422: 4419: 4417: 4414: 4412: 4409: 4408: 4407: 4404: 4400: 4397: 4395: 4392: 4391: 4390: 4387: 4385: 4382: 4380: 4377: 4375: 4372: 4370: 4367: 4363: 4360: 4358: 4355: 4351: 4348: 4346: 4343: 4340: 4337: 4336: 4335: 4332: 4330: 4327: 4326: 4325: 4322: 4321: 4319: 4317: 4313: 4307: 4304: 4300: 4297: 4295: 4292: 4290: 4287: 4286: 4285: 4282: 4280: 4277: 4275: 4272: 4271: 4269: 4267: 4263: 4257: 4254: 4252: 4249: 4247: 4244: 4242: 4239: 4237: 4234: 4232: 4229: 4227: 4224: 4223: 4221: 4217: 4211: 4208: 4206: 4203: 4201: 4198: 4196: 4193: 4191: 4188: 4187: 4185: 4181: 4175: 4172: 4170: 4167: 4165: 4162: 4160: 4157: 4155: 4152: 4150: 4147: 4145: 4142: 4140: 4137: 4135: 4132: 4131: 4129: 4125: 4119: 4116: 4113: 4110: 4108: 4105: 4103: 4100: 4097: 4094: 4092: 4089: 4086: 4083: 4081: 4078: 4077: 4075: 4073: 4069: 4063: 4060: 4058: 4055: 4053: 4050: 4048: 4045: 4043: 4040: 4038: 4035: 4033: 4030: 4028: 4025: 4024: 4022: 4018: 4012: 4009: 4007: 4004: 4002: 3999: 3997: 3994: 3992: 3989: 3987: 3984: 3982: 3979: 3977: 3974: 3972: 3969: 3967: 3964: 3963: 3961: 3957: 3953: 3946: 3941: 3939: 3934: 3932: 3927: 3926: 3923: 3911: 3908: 3906: 3903: 3901: 3898: 3896: 3893: 3891: 3888: 3886: 3883: 3881: 3878: 3876: 3873: 3871: 3868: 3867: 3865: 3861: 3854: 3851: 3849: 3846: 3844: 3841: 3839: 3836: 3834: 3831: 3829: 3826: 3824: 3821: 3820: 3818: 3816: 3810: 3800: 3797: 3795: 3792: 3790: 3787: 3785: 3782: 3780: 3777: 3773: 3770: 3768: 3765: 3763: 3760: 3759: 3758: 3755: 3754: 3752: 3750: 3746: 3740: 3737: 3733: 3730: 3728: 3725: 3724: 3723: 3720: 3716: 3713: 3712: 3711: 3708: 3706: 3703: 3701: 3700:Demultiplexer 3698: 3696: 3693: 3692: 3690: 3688: 3684: 3678: 3675: 3673: 3670: 3667: 3665: 3662: 3660: 3657: 3655: 3652: 3650: 3647: 3646: 3644: 3642: 3638: 3632: 3629: 3627: 3624: 3622: 3621:Memory buffer 3619: 3617: 3616:Register file 3614: 3612: 3609: 3607: 3604: 3602: 3599: 3598: 3596: 3594: 3590: 3582: 3579: 3577: 3574: 3573: 3572: 3569: 3567: 3564: 3562: 3559: 3557: 3556:Combinational 3554: 3553: 3551: 3549: 3545: 3539: 3536: 3532: 3529: 3528: 3526: 3523: 3521: 3518: 3516: 3513: 3508: 3505: 3503: 3500: 3499: 3497: 3494: 3491: 3488: 3485: 3482: 3479: 3476: 3475: 3473: 3471: 3465: 3459: 3456: 3454: 3451: 3449: 3446: 3444: 3441: 3437: 3434: 3432: 3429: 3427: 3424: 3422: 3419: 3417: 3414: 3412: 3409: 3408: 3407: 3404: 3402: 3399: 3398: 3396: 3392: 3386: 3383: 3381: 3378: 3376: 3373: 3371: 3368: 3367: 3365: 3361: 3353: 3350: 3349: 3348: 3345: 3343: 3340: 3338: 3335: 3333: 3330: 3328: 3325: 3323: 3320: 3318: 3315: 3313: 3310: 3308: 3305: 3303: 3300: 3298: 3295: 3293: 3290: 3288: 3285: 3283: 3280: 3278: 3275: 3274: 3272: 3270: 3266: 3256: 3253: 3251: 3248: 3246: 3243: 3240: 3237: 3234: 3231: 3228: 3225: 3222: 3219: 3217: 3214: 3211: 3208: 3206: 3203: 3201: 3198: 3197: 3195: 3193: 3187: 3180: 3177: 3175: 3172: 3169: 3166: 3163: 3160: 3159: 3157: 3151: 3145: 3142: 3140: 3137: 3135: 3132: 3130: 3127: 3125: 3122: 3120: 3117: 3115: 3112: 3111: 3109: 3105: 3098: 3095: 3092: 3089: 3086: 3083: 3081: 3078: 3076: 3073: 3071: 3068: 3066: 3063: 3061: 3058: 3056: 3053: 3051: 3048: 3046: 3043: 3041: 3038: 3036: 3033: 3029: 3026: 3025: 3023: 3020: 3017: 3014: 3013: 3011: 3009: 3005: 2999: 2996: 2994: 2991: 2988: 2985: 2982: 2979: 2976: 2973: 2970: 2967: 2964: 2961: 2956: 2953: 2952: 2950: 2947: 2945: 2942: 2941: 2939: 2937: 2931: 2919: 2916: 2915: 2914: 2911: 2909: 2906: 2902: 2899: 2897: 2894: 2892: 2889: 2887: 2884: 2883: 2882: 2879: 2877: 2874: 2873: 2871: 2869: 2865: 2859: 2856: 2854: 2851: 2849: 2846: 2842: 2839: 2837: 2834: 2833: 2832: 2829: 2827: 2824: 2823: 2821: 2819: 2815: 2809: 2806: 2804: 2801: 2797: 2794: 2793: 2792: 2789: 2785: 2782: 2780: 2777: 2776: 2775: 2772: 2768: 2765: 2763: 2760: 2759: 2758: 2755: 2753: 2750: 2746: 2743: 2741: 2738: 2737: 2736: 2733: 2732: 2730: 2726: 2723: 2721: 2717: 2707: 2704: 2702: 2699: 2698: 2696: 2694: 2690: 2684: 2681: 2679: 2676: 2672: 2669: 2667: 2664: 2663: 2662: 2659: 2657: 2656:Scoreboarding 2654: 2653: 2651: 2649: 2645: 2639: 2638:False sharing 2636: 2634: 2631: 2629: 2626: 2624: 2621: 2620: 2618: 2616: 2612: 2606: 2603: 2601: 2598: 2596: 2593: 2592: 2590: 2588: 2584: 2581: 2579: 2575: 2565: 2562: 2560: 2557: 2555: 2552: 2549: 2545: 2542: 2540: 2537: 2535: 2532: 2530: 2527: 2526: 2524: 2522: 2519: 2517: 2514: 2512: 2509: 2507: 2504: 2502: 2499: 2497: 2494: 2492: 2489: 2487: 2484: 2482: 2479: 2477: 2474: 2472: 2469: 2467: 2464: 2460: 2457: 2455: 2452: 2450: 2447: 2446: 2444: 2442: 2439: 2437: 2434: 2432: 2431:Stanford MIPS 2429: 2427: 2424: 2422: 2419: 2417: 2414: 2412: 2409: 2407: 2404: 2403: 2401: 2395: 2387: 2384: 2383: 2382: 2379: 2377: 2374: 2372: 2369: 2367: 2364: 2362: 2359: 2357: 2354: 2352: 2349: 2345: 2342: 2341: 2340: 2337: 2333: 2330: 2329: 2328: 2325: 2323: 2320: 2318: 2315: 2313: 2310: 2308: 2305: 2304: 2302: 2298: 2295: 2293: 2292:architectures 2287: 2281: 2278: 2276: 2273: 2271: 2268: 2266: 2263: 2261: 2260:Heterogeneous 2258: 2254: 2251: 2249: 2246: 2245: 2244: 2241: 2239: 2236: 2232: 2229: 2227: 2224: 2222: 2219: 2217: 2214: 2213: 2212: 2211:Memory access 2209: 2207: 2204: 2202: 2199: 2197: 2194: 2192: 2189: 2185: 2182: 2181: 2180: 2177: 2175: 2172: 2170: 2167: 2166: 2164: 2162: 2158: 2150: 2147: 2145: 2144:Random-access 2142: 2140: 2137: 2135: 2132: 2131: 2130: 2127: 2125: 2124:Stack machine 2122: 2120: 2117: 2113: 2110: 2108: 2105: 2103: 2100: 2098: 2095: 2093: 2090: 2088: 2085: 2083: 2080: 2078: 2075: 2074: 2073: 2070: 2066: 2063: 2061: 2058: 2056: 2053: 2051: 2048: 2046: 2043: 2041: 2040:with datapath 2038: 2037: 2036: 2033: 2031: 2028: 2026: 2023: 2022: 2020: 2018: 2014: 2010: 2003: 1998: 1996: 1991: 1989: 1984: 1983: 1980: 1968: 1960: 1958: 1950: 1948: 1940: 1939: 1936: 1930: 1927: 1925: 1922: 1920: 1917: 1915: 1912: 1910: 1907: 1905: 1902: 1900: 1897: 1895: 1892: 1890: 1887: 1885: 1882: 1880: 1877: 1875: 1872: 1870: 1867: 1865: 1862: 1860: 1857: 1855: 1852: 1850: 1847: 1845: 1842: 1840: 1837: 1835: 1832: 1831: 1829: 1825: 1819: 1816: 1814: 1811: 1809: 1806: 1804: 1803:Mixed reality 1801: 1799: 1796: 1794: 1791: 1789: 1786: 1784: 1781: 1780: 1778: 1776: 1772: 1766: 1763: 1761: 1758: 1756: 1753: 1751: 1748: 1746: 1743: 1742: 1740: 1738: 1734: 1728: 1725: 1723: 1720: 1718: 1715: 1713: 1710: 1708: 1705: 1703: 1700: 1698: 1695: 1693: 1690: 1689: 1687: 1685: 1681: 1675: 1672: 1670: 1667: 1665: 1662: 1660: 1657: 1655: 1652: 1651: 1649: 1647: 1643: 1637: 1636:Accessibility 1634: 1632: 1631:Visualization 1629: 1627: 1624: 1622: 1619: 1617: 1614: 1613: 1611: 1609: 1605: 1599: 1596: 1594: 1591: 1589: 1586: 1584: 1581: 1579: 1576: 1574: 1571: 1569: 1566: 1564: 1561: 1559: 1556: 1555: 1553: 1551: 1547: 1541: 1538: 1536: 1533: 1531: 1528: 1526: 1523: 1521: 1518: 1516: 1513: 1511: 1508: 1506: 1503: 1501: 1498: 1496: 1493: 1491: 1488: 1486: 1483: 1481: 1478: 1476: 1473: 1472: 1470: 1468: 1464: 1458: 1455: 1453: 1450: 1448: 1445: 1443: 1440: 1438: 1435: 1433: 1430: 1428: 1425: 1423: 1420: 1419: 1417: 1415: 1410: 1404: 1401: 1399: 1396: 1394: 1391: 1389: 1386: 1384: 1381: 1380: 1378: 1376: 1372: 1366: 1363: 1361: 1358: 1356: 1353: 1351: 1348: 1346: 1343: 1341: 1338: 1334: 1331: 1330: 1329: 1326: 1325: 1323: 1321: 1317: 1311: 1308: 1306: 1303: 1301: 1298: 1296: 1293: 1291: 1288: 1286: 1283: 1281: 1278: 1276: 1273: 1271: 1268: 1266: 1263: 1262: 1260: 1258: 1254: 1248: 1245: 1243: 1240: 1238: 1235: 1233: 1230: 1228: 1225: 1223: 1220: 1218: 1215: 1213: 1210: 1208: 1205: 1203: 1200: 1199: 1197: 1195: 1191: 1187: 1181: 1178: 1176: 1173: 1171: 1168: 1166: 1163: 1161: 1158: 1157: 1155: 1151: 1145: 1142: 1140: 1137: 1135: 1132: 1130: 1127: 1125: 1122: 1120: 1117: 1116: 1114: 1112: 1108: 1102: 1099: 1097: 1094: 1092: 1091:Dependability 1089: 1087: 1084: 1082: 1079: 1078: 1076: 1072: 1066: 1062: 1059: 1057: 1054: 1052: 1049: 1047: 1044: 1042: 1039: 1037: 1034: 1032: 1029: 1027: 1024: 1022: 1019: 1017: 1014: 1013: 1011: 1009: 1005: 1000: 994: 990: 983: 978: 976: 971: 969: 964: 963: 960: 953: 950: 947: 943: 940: 939: 923: 916: 910: 906: 896: 893: 891: 888: 886: 883: 882: 876: 873: 868: 866: 861: 852: 850: 846: 843: 839: 836: 832: 831:UltraSPARC T2 829: 825: 821: 817: 813: 809: 805: 801: 797: 794: 790: 787: 783: 779: 775: 770: 766: 764: 750: 743: 732: 725: 720: 703: 692: 685: 680: 663: 650: 649: 648: 647:For example: 645: 643: 639: 633: 623: 619: 606: 601: 592: 587: 586: 585: 584:For example: 582: 580: 576: 572: 566: 556: 554: 550: 545: 541: 537: 535: 521: 514: 509: 496: 491: 482: 477: 468: 461: 456: 447: 440: 435: 420: 419: 418: 417:For example: 415: 413: 401: 386: 384: 380: 374: 371: 367: 363: 359: 355: 350: 348: 341:Disadvantages 338: 336: 326: 324: 323: 318: 313: 311: 307: 303: 299: 289: 287: 283: 279: 275: 271: 262: 249: 246: 231: 228: 220: 210: 206: 202: 196: 195: 190:This article 188: 179: 178: 169: 166: 158: 147: 144: 140: 137: 133: 130: 126: 123: 119: 116: â€“  115: 111: 110:Find sources: 104: 100: 94: 93: 88:This article 86: 82: 77: 76: 71: 69: 62: 61: 56: 55: 50: 45: 36: 35: 30: 19: 4219:Coordination 4149:Amdahl's law 4085:Simultaneous 4071: 3910:Chip carrier 3848:Clock gating 3767:Mixed-signal 3664:Write buffer 3641:Control unit 3453:Clock signal 3192:accelerators 3174:Cypress PSoC 2831:Simultaneous 2817: 2648:Out-of-order 2280:Neuromorphic 2161:Architecture 2119:Belt machine 2112:Zeno machine 2045:Hierarchical 1899:Cyberwarfare 1668: 1558:Cryptography 922:the original 909: 869: 862: 858: 771: 767: 760: 753:from thread 748: 741: 735:from thread 730: 723: 714:from thread 706:from thread 701: 695:from thread 690: 683: 674:from thread 666:from thread 661: 646: 635: 620: 616: 604: 590: 583: 568: 546: 542: 538: 531: 524:from thread 519: 512: 503:from thread 494: 480: 471:from thread 466: 459: 450:from thread 445: 438: 429:from thread 416: 412:ready-to-run 408: 375: 351: 344: 335:cache misses 332: 320: 316: 314: 295: 273: 267: 241: 223: 217:October 2010 214: 191: 161: 155:October 2009 152: 142: 135: 128: 121: 109: 97:Please help 92:verification 89: 65: 58: 52: 51:Please help 48: 4655:Scalability 4416:distributed 4299:Concurrency 4266:Programming 4107:Cooperative 4096:Speculative 4032:Instruction 3695:Multiplexer 3659:Data buffer 3370:Single-core 3342:bit slicing 3200:Coprocessor 3055:Coprocessor 2936:performance 2858:Cooperative 2848:Speculative 2808:Distributed 2767:Superscalar 2752:Instruction 2720:Parallelism 2693:Speculative 2525:System/3x0 2397:Instruction 2174:Von Neumann 2087:Post–Turing 1909:Video games 1889:Digital art 1646:Concurrency 1515:Data mining 1427:Probability 1160:Interpreter 885:Async/await 769:processed. 4694:Categories 4660:Starvation 4399:asymmetric 4134:PRAM model 4102:Preemptive 3815:management 3710:Multiplier 3571:Logic gate 3561:Sequential 3468:Functional 3448:Clock rate 3421:Data cache 3394:Components 3375:Multi-core 3363:Core count 2853:Preemptive 2757:Pipelining 2740:Bit-serial 2683:Wide-issue 2628:Structural 2550:Tilera ISA 2516:MicroBlaze 2486:ETRAX CRIS 2381:Comparison 2226:Load–store 2206:Endianness 1967:Glossaries 1839:E-commerce 1432:Statistics 1375:Algorithms 1333:Stochastic 1165:Middleware 1021:Peripheral 901:References 613:is issued. 599:is issued. 579:preemptive 528:is issued. 507:is issued. 454:is issued. 433:is issued. 329:Advantages 201:improve it 125:newspapers 54:improve it 4394:symmetric 4139:PEM model 3749:Circuitry 3669:Microcode 3593:Registers 3436:coherence 3411:CPU cache 3269:Word size 2934:Processor 2578:Execution 2481:DEC Alpha 2459:Power ISA 2275:Cognitive 2082:Universal 1788:Rendering 1783:Animation 1414:computing 1365:Semantics 1056:Processor 845:Bulldozer 414:threads. 205:verifying 60:talk page 4625:Deadlock 4613:Problems 4579:pthreads 4559:OpenHMPP 4484:Ateji PX 4445:computer 4316:Hardware 4183:Elements 4169:Slowdown 4080:Temporal 4062:Pipeline 3687:Datapath 3380:Manycore 3352:variable 3190:Hardware 2826:Temporal 2506:OpenRISC 2201:Cellular 2191:Dataflow 2184:modified 1947:Category 1775:Graphics 1550:Security 1212:Compiler 1111:Networks 1008:Hardware 879:See also 575:pipeline 298:paradigm 292:Overview 4584:RaftLib 4564:OpenACC 4539:GPUOpen 4529:C++ AMP 4504:Charm++ 4246:Barrier 4190:Process 4174:Speedup 3959:General 3863:Related 3794:Quantum 3784:Digital 3779:Boolean 3677:Counter 3576:Quantum 3337:512-bit 3332:256-bit 3327:128-bit 3170:(MPSoC) 3155:on chip 3153:Systems 2971:(FLOPS) 2784:Process 2633:Control 2615:Hazards 2501:Itanium 2496:Unicore 2454:PowerPC 2179:Harvard 2139:Pointer 2134:Counter 2092:Quantum 1957:Outline 776:(later 370:AltiVec 199:Please 139:scholar 4677:  4554:OpenCL 4549:OpenMP 4494:Chapel 4411:shared 4406:Memory 4341:(SIMT) 4284:Models 4195:Thread 4127:Theory 4098:(SpMT) 4052:Memory 4037:Thread 4020:Levels 3799:Switch 3789:Analog 3527:(IMC) 3498:(MMU) 3347:others 3322:64-bit 3317:48-bit 3312:32-bit 3307:24-bit 3302:16-bit 3297:15-bit 3292:12-bit 3129:Mobile 3045:Stream 3040:Barrel 3035:Vector 3024:(GPU) 2983:(SUPS) 2951:(IPC) 2803:Memory 2796:Vector 2779:Thread 2762:Scalar 2564:Others 2511:RISC-V 2476:SuperH 2445:Power 2441:MIPS-X 2416:PDP-11 2265:Fabric 2017:Models 840:, and 814:, IBM 812:POWER9 808:POWER8 804:POWER7 800:POWER6 796:POWER5 778:Compaq 721:Cycle 681:Cycle 651:Cycle 602:Cycle 588:Cycle 510:Cycle 492:Cycle 478:Cycle 457:Cycle 436:Cycle 421:Cycle 141:  134:  127:  120:  112:  4524:Dryad 4489:Boost 4210:Array 4200:Fiber 4114:(CMT) 4087:(SMT) 4001:GPGPU 3855:(PPW) 3813:Power 3705:Adder 3581:Array 3548:Logic 3509:(TLB) 3492:(FPU) 3486:(AGU) 3480:(ALU) 3470:units 3406:Cache 3287:8-bit 3282:4-bit 3277:1-bit 3241:(TPU) 3235:(DSP) 3229:(PPU) 3223:(VPU) 3212:(GPU) 3181:(NoC) 3164:(SoC) 3099:(PoP) 3093:(SiP) 3087:(MCM) 3028:GPGPU 3018:(CPU) 3008:Types 2989:(PPW) 2977:(TPS) 2965:(IPS) 2957:(CPI) 2728:Level 2539:S/390 2534:S/370 2529:S/360 2471:SPARC 2449:POWER 2332:TRIPS 2300:Types 1360:Logic 1194:tools 925:(PDF) 918:(PDF) 786:Intel 354:Intel 146:JSTOR 132:books 4589:ROCm 4519:CUDA 4509:Cilk 4476:APIs 4436:COMA 4431:NUMA 4362:MIMD 4357:MISD 4334:SIMD 4329:SISD 4057:Loop 4047:Data 4042:Task 3833:ACPI 3566:Glue 3458:FIFO 3401:Core 3139:ASIP 3080:CPLD 3075:FPOA 3070:FPGA 3065:ASIC 2918:SPMD 2913:MIMD 2908:MISD 2901:SWAR 2881:SIMD 2876:SISD 2791:Data 2774:Task 2745:Word 2491:M32R 2436:MIPS 2399:sets 2366:ZISC 2361:NISC 2356:OISC 2351:MISC 2344:EPIC 2339:VLIW 2327:EDGE 2317:RISC 2312:CISC 2221:HUMA 2216:NUMA 1192:and 1065:Form 1061:Size 847:and 835:Cray 746:and 659:and 319:and 118:news 4604:ZPL 4599:TBB 4594:UPC 4574:PVM 4544:MPI 4499:HPX 4426:UMA 4027:Bit 3828:APM 3823:PMU 3715:CPU 3672:ROM 3443:Bus 3060:PAL 2735:Bit 2521:LMC 2426:ARM 2421:x86 2411:VAX 946:ACM 865:DMA 849:Zen 842:AMD 838:XMT 824:z15 820:z14 816:z13 793:IBM 782:EV8 774:DEC 751:+ 2 744:+ 1 733:+ 3 726:+ 2 704:+ 1 693:+ 2 686:+ 1 664:+ 1 607:+ 2 593:+ 1 522:+ 1 515:+ 5 497:+ 4 483:+ 3 469:+ 2 462:+ 2 448:+ 1 441:+ 1 368:or 366:MMX 268:In 203:by 101:by 4696:: 3762:3D 1063:/ 944:, 833:, 826:, 791:, 780:) 325:. 288:. 272:, 63:. 3944:e 3937:t 3930:v 2001:e 1994:t 1987:v 1001:. 981:e 974:t 967:v 822:/ 818:/ 810:/ 806:/ 802:/ 798:/ 755:C 749:m 742:m 737:A 731:j 724:i 716:C 712:m 708:B 702:k 697:A 691:j 684:i 676:B 672:k 668:A 662:j 657:j 653:i 611:C 605:i 597:B 591:i 526:B 520:k 513:i 505:B 501:k 495:i 489:. 487:B 481:i 473:A 467:j 460:i 452:A 446:j 439:i 431:A 427:j 423:i 248:) 242:( 230:) 224:( 219:) 215:( 197:. 168:) 162:( 157:) 153:( 143:· 136:· 129:· 122:· 95:. 70:) 66:( 31:. 20:)

Index

Multi-threaded
Thread (computing)
improve it
talk page
Learn how and when to remove these messages

verification
improve this article
adding citations to reliable sources
"Multithreading" computer architecture
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
original research
improve it
verifying
inline citations
Learn how and when to remove this message
Learn how and when to remove this message
A process with two threads of execution, running on a single processor. Thread #1 is executed first, eventually starts Thread #2, and waits for a response. When Thread #2 finishes, it signals Thread #1 to resume execution to completion and then finishes.
computer architecture
central processing unit
multi-core processor
threads of execution
paradigm
instruction-level parallelism
throughput computing

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑