135:, keeps track of where the virtual pages are stored in the physical memory. This method uses two memory accesses (one for the page-table entry, one for the byte) to access a byte. First, the page table is looked up for the frame number. Second, the frame number with the page offset gives the actual address. Thus, any straightforward virtual memory scheme would have the effect of doubling the memory access time. Hence, the TLB is used to reduce the time taken to access the memory locations in the page-table method. The TLB is a cache of the page table, representing only a subset of the page-table contents.
178:
is returned and is used to access the memory. If the page number is not in the TLB, the page table must be checked. Depending on the CPU, this can be done automatically using a hardware or using an interrupt to the operating system. When the frame number is obtained, it can be used to access the memory. In addition, we add the page number and frame number to the TLB, so that they will be found quickly on the next reference. If the TLB is already full, a suitable block must be selected for replacement. There are different replacement methods like
199:
104:
3715:
3705:
3695:
3685:
3675:
243:), not entire pages, but address lookup is done at the page level. Thus, even if the code and data working sets fit into cache, if the working sets are fragmented across many pages, the virtual-address working set may not fit into TLB, causing TLB thrashing. Appropriate sizing of the TLB thus requires considering not only the size of the corresponding instruction and data caches, but also how these are fragmented across multiple pages.
357:, rather than in the operating system. As the PALcode for a processor can be processor-specific and operating-system-specific, this allows different versions of PALcode to implement different page-table formats for different operating systems, without requiring that the TLB format, and the instructions to control the TLB, to be specified by the architecture.
649:) have introduced tags as part of the TLB entry and dedicated hardware that checks the tag during lookup. Not all operating systems made full use of these tags immediately, but Linux 4.14 started using them to identify recently used address spaces, since the 12-bits PCIDs (4095 different values) are insufficient for all tasks running on a given CPU.
295:, for instance) to see whether there is a valid page-table entry for the specified virtual address. If an entry exists, it is brought into the TLB, and the TLB access is retried: this time the access will hit, and the program can proceed normally. If the CPU finds no valid entry for the virtual address in the page tables, it raises a
81:. The page walk is time-consuming when compared to the processor speed, as it involves reading the contents of multiple memory locations and using them to compute the physical address. After the physical address is determined by the page walk, the virtual address to physical address mapping is entered into the TLB. The
306:
must handle. Handling page faults usually involves bringing the requested data into physical memory, setting up a page table entry to map the faulting virtual address to the correct physical address, and resuming the program. With a hardware-managed TLB, the format of the TLB entries is not visible
632:
Normally, entries in the x86 TLBs are not associated with a particular address space; they implicitly refer to the current address space. Hence, every time there is a change in address space, such as a context switch, the entire TLB has to be flushed. Maintaining a tag that associates each TLB entry
322:
With firmware-managed TLBs, a TLB miss causes a trap to system firmware, which is responsible for walking the page tables and finding the appropriate page table entry, similarly to what a TLB miss handler does for a software-managed TLB. With a firmware-managed TLB, the format of the TLB entries is
251:
Similar to caches, TLBs may have multiple levels. CPUs can be (and nowadays usually are) built with multiple TLBs, for example a small L1 TLB (potentially fully associative) that is extremely fast, and a larger L2 TLB that is somewhat slower. When instruction-TLB (ITLB) and data-TLB (DTLB) are used,
177:
A common optimization for physically addressed caches is to perform the TLB lookup in parallel with the cache access. Upon each virtual memory reference, the hardware checks the TLB to see whether the page number is held therein. If yes, it is a TLB hit, and the translation is made. The frame number
554:
memory reference will be a miss, so it will be some time before things are running back at full speed. Newer CPUs use more effective strategies marking which process an entry is for. This means that if a second process runs for only a short time and jumps back to a first process, the TLB may still
263:
microarchitecture has a four-way set associative L1 DTLB with 64 entries for 4 KiB pages and 32 entries for 2/4 MiB pages, an L1 ITLB with 128 entries for 4 KiB pages using four-way associativity and 14 fully associative entries for 2/4 MiB pages (both parts of the ITLB divided
210:
in a cache, but the information for virtual-to-physical translation is not in a TLB. These are all slow, due to the need to access a slower level of the memory hierarchy, so a well-functioning TLB is important. Indeed, a TLB miss can be more expensive than an instruction or data cache miss, due to
611:
Flushing of the TLB can be an important security mechanism for memory isolation between processes to ensure a process can't access data stored in memory pages of another process. Memory isolation is especially critical during switches between the privileged operating system kernel process and the
218:
is set, then the page is in main memory, and the processor can retrieve the frame number from the page-table entry to form the physical address. The processor also updates the TLB to include the new page-table entry. Finally, if the present bit is not set, then the desired page is not in the main
173:
The TLB can be used as a fast lookup hardware cache. The figure shows the working of a TLB. Each entry in the TLB consists of two parts: a tag and a value. If the tag of the incoming virtual address matches the tag in the TLB, the corresponding value is returned. Since the TLB lookup is usually a
314:
exception, and operating system code is responsible for walking the page tables and finding the appropriate page table entry. The operating system then loads the information from that page table entry into the TLB and restarts the program from the instruction that caused the TLB miss. As with
73:. If the requested address is present in the TLB, the CAM search yields a match quickly and the retrieved physical address can be used to access memory. This is called a TLB hit. If the requested address is not in the TLB, it is a miss, and the translation proceeds by looking up the
234:
occurs, where frequent TLB misses occur, with each newly cached page displacing one that will soon be used again, degrading performance in exactly the same way as thrashing of the instruction or data cache does. TLB thrashing can occur even if instruction-cache or data-cache
51:, between CPU cache and the main memory or between the different levels of the multi-level cache. The majority of desktop, laptop, and server processors include one or more TLBs in the memory-management hardware, and it is nearly always present in any processor that uses
549:
between processes (but not between threads), some TLB entries can become invalid, since the virtual-to-physical mapping is different. The simplest strategy to deal with this is to completely flush the TLB. This means that after a switch, the TLB is empty, and
146:
memory, or between levels of a multi-level cache. The placement determines whether the cache uses physical or virtual addressing. If the cache is virtually addressed, requests are sent directly from the CPU to the cache, and the TLB is accessed only on a
633:
with an address space in software and comparing this tag during TLB lookup and TLB flush is very expensive, especially since the x86 TLB is designed to operate with very low latency and completely in hardware. In 2008, both
581:
and the global (G) flag of a page-directory or page-table entry can be used to prevent frequently used pages from being automatically invalidated in the TLBs on a task switch or a load of register CR3. Since the 2010
338:
architecture allows an implementation of SPARC V9 to have no MMU, an MMU with a software-managed TLB, or an MMU with a hardware-managed TLB, and the UltraSPARC Architecture 2005 specifies a software-managed TLB.
628:
With the advent of virtualization for server consolidation, a lot of effort has gone into making the x86 architecture easier to virtualize and to ensure better performance of virtual machines on x86 hardware.
492:
is the hit time in cycles. If a TLB hit takes 1 clock cycle, a miss takes 30 clock cycles, a memory read takes 30 clock cycles, and the miss rate is 1%, the effective memory cycle rate is an average of
319:
of CPUs that have software-managed TLBs have instructions that allow loading entries into any slot in the TLB. The format of the TLB entry is defined as a part of the instruction set architecture (ISA).
955:
975:
J. Smith and R. Nair. Virtual
Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., 2005.
535:
174:
part of the instruction pipeline, searches are fast and cause essentially no performance penalty. However, to be able to search within the instruction pipeline, the TLB has to be small.
562:
uses the same virtual-to-physical mapping for all processes. (b) Some CPUs have a process ID register, and the hardware uses TLB entries only if they match the current process ID.
206:
The CPU has to access main memory for an instruction-cache miss, data-cache miss, or TLB miss. The third case (the simplest one) is where the desired information itself actually
1255:
D. Abramson; J. Jackson; S. Muthrasanallur; G. Neiger; G. Regnier; R. Sankaran; I. Schoinas; R. Uhlig; B. Vembu; J. Wiegert. "Intel
Virtualization Technology for Directed I/O".
430:
119:
and intermediate-table addresses, while segment-table entries map virtual addresses to segment addresses, intermediate-table addresses and page-table addresses. The
490:
470:
450:
2401:
593:(PCIDs), which allow retaining TLB entries for multiple linear-address spaces, with only those that match the current PCID being used for address translation.
162:, a separate virtual address space or memory-access hardware may exist for instructions and data. This can lead to distinct TLBs for each access type, an
151:. If the cache is physically addressed, the CPU does a TLB lookup on every memory operation, and the resulting physical address is sent to the cache.
1072:
315:
hardware TLB management, if the OS finds no valid translation in the page tables, a page fault has occurred, and the OS must handle it accordingly.
1373:
1283:
G. Neiger; A. Santoni; F. Leung; D. Rodgers; R. Uhlig. "Intel
Virtualization Technology: Hardware Support for Efficient Processor Virtualization".
791:
39:. It is used to reduce the time taken to access a user memory location. It can be called an address-translation cache. It is a part of the chip's
620:(KPTI) rely heavily on performance-impacting TLB flushes and benefit greatly from hardware-enabled selective TLB entry management such as PCID.
2512:
1695:
214:
The flowchart provided explains the working of a TLB. If it is a TLB miss, then the CPU checks the page table for the page table entry. If the
986:
596:
While selective flushing of the TLB is an option in software-managed TLBs, the only option in some hardware TLBs (for example, the TLB in the
2214:
3655:
1492:
3316:
2371:
1937:
1754:
2725:
1717:
2366:
3364:
2438:
714:
2720:
2191:
1214:
3708:
3512:
3336:
1115:
876:
775:
559:
323:
not visible to system software and can change from CPU to CPU without causing loss of compatibility for the operating system.
3698:
3135:
2259:
1522:
1366:
1346:
3718:
3145:
2286:
954:
Srinivas, Suresh; Pawar, Uttam; Aribuki, Dunni; Manciu, Catalin; Schulhof, Gabriel; Prasad, Aravinda (1 November 2019).
1413:
851:
239:
are not occurring, because these are cached in different-size units. Instructions and data are cached in small blocks (
202:
Flowchart shows the working of a translation lookaside buffer. For simplicity, the page-fault routine is not mentioned.
2453:
2281:
2254:
1633:
613:
3749:
3268:
2831:
1724:
1690:
1685:
1604:
1569:
600:) is the complete flushing of the TLB on an address-space switch. Other hardware TLBs (for example, the TLB in the
496:
3535:
3309:
3243:
3140:
2541:
2448:
2249:
1470:
1359:
3660:
2269:
1988:
1423:
1273:
Advanced Micro
Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.
573:(ASN), and only TLB entries with an ASN matching the current task are considered valid. Another example in the
2443:
2291:
2264:
2125:
1739:
1700:
1557:
271:
microarchitecture separates the TLB entries for 1 GiB pages from those for 4 KiB/2 MiB pages.
264:
statically between two threads) and a unified 512-entry L2 TLB for 4 KiB pages, both 4-way associative.
159:
1234:
1145:
3520:
2642:
2118:
2079:
1734:
1729:
1663:
1475:
1131:
1081:
583:
236:
1318:
932:
892:
307:
to software and can change from CPU to CPU without causing loss of compatibility for the operating system.
190:
section in the cache article for more details about virtual addressing as it pertains to caches and TLBs.
3497:
2507:
2204:
1902:
1599:
1068:
638:
617:
268:
260:
906:
3754:
3678:
3565:
3555:
3545:
3398:
3302:
3157:
2804:
2221:
1712:
1680:
1450:
1438:
1418:
66:
3624:
3248:
3211:
3201:
1589:
1055:
956:"Runtime Performance Optimization Blueprint: Intel® Architecture Optimization with Large Code Pages"
3744:
3484:
3263:
2670:
2606:
2583:
2433:
2395:
2231:
2181:
2176:
1653:
1547:
1455:
990:
211:
the need for not just a load from main memory, but a page walk, requiring several memory accesses.
223:
is issued. Then a page-fault interrupt is called, which executes the page-fault handling routine.
3739:
3688:
3550:
3525:
3431:
3216:
2999:
2893:
2857:
2774:
2758:
2600:
2389:
2348:
2336:
2199:
2113:
2034:
1799:
1460:
1403:
385:
89:
TLB for data loads and stores. Some processors have different instruction and data address TLBs.
44:
3502:
3454:
3352:
3022:
2994:
2904:
2869:
2618:
2612:
2594:
2328:
2322:
2226:
2130:
2021:
1960:
1822:
1465:
1305:
646:
124:
40:
1040:
608:
processors) allow the flushing of individual entries from the TLB indexed by virtual address.
3530:
3196:
3105:
2851:
2563:
2381:
2140:
2108:
2066:
1978:
1779:
1594:
1584:
1574:
1564:
1534:
1517:
1382:
674:
3226:
3162:
2748:
2470:
2360:
2307:
1839:
1552:
1408:
1390:
155:
198:
170:(DTLB). Various benefits have been demonstrated with separate data and instruction TLBs.
8:
3408:
3273:
3258:
3078:
2929:
2911:
2875:
2863:
2517:
2464:
2241:
2157:
2039:
1894:
1789:
1648:
764:
668:
187:
98:
56:
267:
Some TLBs may have separate sections for small pages and huge pages. For example, Intel
3650:
3634:
3560:
3130:
3122:
2974:
2949:
2753:
2628:
2152:
2093:
1973:
1705:
1433:
1125:
785:
737:
578:
475:
455:
435:
299:
288:
745:
3426:
3325:
3083:
3050:
2966:
2898:
2799:
2789:
2779:
2710:
2705:
2700:
2623:
2552:
2458:
2418:
2051:
2001:
1951:
1927:
1809:
1749:
1744:
1626:
1542:
1111:
910:
872:
847:
771:
658:
574:
328:
741:
694:
346:
architecture provides an option of using either software- or hardware-managed TLBs.
138:
Referencing the physical memory addresses, a TLB may reside between the CPU and the
3603:
3598:
3441:
3253:
3186:
3172:
3027:
2934:
2888:
2695:
2690:
2685:
2680:
2675:
2665:
2535:
2502:
2413:
2408:
2317:
2169:
2164:
2147:
2135:
2074:
1638:
1616:
1502:
1480:
1398:
1036:
822:
729:
605:
303:
128:
116:
70:
696:
Operating
Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)]
353:
architecture has a firmware-managed TLB, with the TLB miss handling code being in
3593:
3492:
3167:
3152:
3100:
3004:
2979:
2816:
2809:
2660:
2655:
2650:
2589:
2497:
2487:
2209:
2044:
1996:
1759:
1643:
1611:
1512:
1507:
1428:
316:
143:
86:
36:
3608:
3575:
3570:
3416:
3375:
3278:
3112:
3095:
3088:
2984:
2841:
2578:
2492:
2423:
2006:
1968:
1917:
1912:
1907:
1621:
1445:
546:
120:
115:
entries and segment-table entries; page-table entries map virtual addresses to
103:
59:
32:
3733:
3585:
3388:
3383:
3073:
2989:
2029:
2011:
1804:
1497:
1022:
806:
231:
131:
of variable sizes (in segmented memory). The page table, generally stored in
69:(CAM). The CAM search key is the virtual address, and the search result is a
52:
1932:
804:
3283:
3221:
3037:
3014:
2826:
2547:
1485:
1254:
1016:
733:
123:
is the memory space as seen from a process; this space is often split into
1191:
1108:
Computer
Organization And Design. Hardware/Software interface. 4th edition
827:
810:
3629:
3068:
3032:
2743:
2715:
2573:
2428:
1351:
601:
597:
566:
279:
Three schemes for handling TLB misses are found in modern architectures:
227:
132:
82:
1213:
Intel
Corporation (2017). "4.10.1 Process-Context Identifiers (PCIDs)".
3393:
2954:
2944:
2939:
2921:
2821:
2794:
2056:
1889:
1859:
1579:
296:
284:
240:
220:
148:
112:
74:
1110:. Burlington, MA 01803, USA: Morgan Kaufmann Publishers. p. 503.
3540:
3421:
3045:
3042:
2784:
1854:
1832:
350:
139:
48:
28:
3294:
1056:
Virtual Memory in the IA-64 Kernel > Translation
Lookaside Buffer
3474:
3469:
3459:
3449:
3060:
1879:
1172:
712:
586:
558:
Other strategies avoid flushing the TLB on a context switch: (a) A
335:
1105:
3464:
1869:
1827:
1282:
1176:
354:
343:
1884:
1849:
1814:
663:
1003:
If no matching TLB entry is found, a TLB miss exception occurs
762:
Silberschatz, Galvin, Gagne, Abraham, Peter B. , Greg (2009).
283:
With hardware TLB management, the CPU automatically walks the
2342:
1874:
1844:
634:
256:
1308:
Architecture
Reference Manual. Advanced Micro Devices, 2008.
1235:"PCID is now a critical performance/security feature on x86"
1216:
Intel 64 and IA-32 Architectures
Software Developer's Manual
693:
Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014),
692:
3206:
2354:
2274:
1864:
761:
378:
Miss rate: 0.01 – 1% (20–40% for sparse/graph applications)
953:
1794:
1784:
1302:
642:
292:
127:
of a fixed size (in paged memory), or less commonly into
1080:. Version 4. Compaq Computer Corporation. Archived from
770:. United States of America: John Wiley & Sons. INC.
713:
S. Peter Song; Marvin Denman; Joe Chang (October 1994).
252:
a CPU can have three (ITLB1, DTLB1, TLB2) or four TLBs.
1067:
3337:
Memory management as a function of an operating system
616:
security vulnerability. Mitigation strategies such as
382:
The average effective memory cycle rate is defined as
1014:
933:"Inside Nehalem: Intel's Future Processor and System"
893:"Inside Nehalem: Intel's Future Processor and System"
499:
478:
458:
438:
388:
577:, the page global enable (PGE) flag in the register
555:
have valid entries, saving the time to reload them.
452:
is the number of cycles required for a memory read,
310:With software-managed TLBs, a TLB miss generates a
844:Operating Systems: Internals and Design Principles
763:
529:
484:
464:
444:
424:
1222:. Vol. 3A: System Programming Guide, Part 1.
1212:
3731:
1045:. Draft D0.9.2, 19 June 2008. Sun Microsystems.
907:"Intel Core i7 (Nehalem): Architecture By AMD?"
869:Fundamentals of Parallel Multicore Architecture
365:These are typical performance levels of a TLB:
1170:
1146:"Translation Lookaside Buffer (TLB) in Paging"
871:. Boca Raton, FL: Taylor & Francis Group.
3310:
1367:
1106:David A. Patterson; John L. Hennessy (2009).
811:"A Simulation Based Study of TLB Performance"
623:
530:{\displaystyle 30+0.99\times 1+0.01\times 30}
111:A TLB has a fixed number of slots containing
3656:International Symposium on Memory Management
1189:
1035:
790:: CS1 maint: multiple names: authors list (
2372:Computer performance by orders of magnitude
612:user processes – as was highlighted by the
545:On an address-space switch, as occurs when
193:
3317:
3303:
1381:
1374:
1360:
841:
826:
604:and later x86 processors, and the TLB in
1232:
1018:The SPARC Architecture Manual, Version 9
537:(31.29 clock cycles per memory access).
197:
164:instruction translation lookaside buffer
102:
1099:
866:
540:
31:that stores the recent translations of
3732:
815:ACM SIGARCH Computer Architecture News
686:
3324:
3298:
1355:
846:. United States of America: Pearson.
715:"The PowerPC 604 RISC Microprocessor"
560:single address space operating system
2343:Floating-point operations per second
1347:Virtual Translation Lookaside Buffer
1319:"Longer-lived TLB Entries with PCID"
274:
65:The TLB is sometimes implemented as
43:(MMU). A TLB may reside between the
3365:Input–output memory management unit
569:, each TLB entry is tagged with an
375:Miss penalty: 10 – 100 clock cycles
13:
331:specifies a software-managed TLB.
14:
3766:
1340:
1171:Ulrich Drepper (9 October 2014).
984:
168:data translation lookaside buffer
3714:
3713:
3704:
3703:
3694:
3693:
3684:
3683:
3674:
3673:
3269:Semiconductor device fabrication
246:
230:does not fit into the TLB, then
3536:Concurrent mark sweep collector
3244:History of general-purpose CPUs
1471:Nondeterministic Turing machine
1311:
1295:
1276:
1267:
1248:
1226:
1206:
1183:
1173:"Memory part 3: Virtual Memory"
1164:
1138:
1061:
1049:
1029:
1008:
987:"MIPS r2000/r3000 Architecture"
978:
969:
947:
805:Chen, J. Bradley; Borg, Anita;
589:processors also support 12-bit
99:CPU cache § Address translation
3661:Region-based memory management
1424:Deterministic finite automaton
1190:David Kanter (17 March 2010).
925:
899:
885:
860:
835:
798:
755:
706:
407:
395:
360:
1:
2215:Simultaneous and heterogenous
680:
372:Hit time: 0.5 – 1 clock cycle
369:Size: 12 bits – 4,096 entries
160:modified Harvard architecture
85:, for example, has a two-way
3709:Memory management algorithms
3521:Automatic Reference Counting
3359:Translation lookaside buffer
2899:Integrated memory controller
2881:Translation lookaside buffer
2080:Memory dependence prediction
1523:Random-access stored program
1476:Probabilistic Turing machine
1042:UltraSPARC Architecture 2005
142:, between the CPU cache and
21:translation lookaside buffer
7:
3699:Automatic memory management
3498:C dynamic memory allocation
2355:Synaptic updates per second
1233:Gil Tene (8 January 2018).
1074:Alpha Architecture Handbook
1069:Compaq Computer Corporation
842:Stallings, William (2014).
652:
618:kernel page-table isolation
591:process-context identifiers
425:{\displaystyle m+(1-p)h+pm}
92:
10:
3771:
3719:Memory management software
3566:Tracing garbage collection
3399:Virtual memory compression
2759:Heterogeneous architecture
1681:Orthogonal instruction set
1451:Alternating Turing machine
1439:Quantum cellular automaton
1015:SPARC International, Inc.
895:. Real World Technologies.
766:Operating Systems Concepts
624:Virtualization and x86 TLB
584:Westmere microarchitecture
96:
67:content-addressable memory
3669:
3643:
3617:
3584:
3511:
3483:
3440:
3407:
3374:
3345:
3332:
3249:Microprocessor chronology
3236:
3212:Dynamic frequency scaling
3185:
3121:
3059:
3013:
2965:
2920:
2840:
2767:
2736:
2641:
2562:
2526:
2480:
2380:
2367:Cache performance metrics
2306:
2240:
2190:
2101:
2092:
2065:
2020:
1987:
1959:
1950:
1770:
1673:
1662:
1533:
1389:
935:. Real World Technologies
3493:Static memory allocation
3485:Manual memory management
3264:Hardware security module
2607:Digital signal processor
2584:Graphics processing unit
2396:Graphics processing unit
1301:Advanced Micro Devices.
1285:Intel Technology Journal
1257:Intel Technology Journal
1130:: CS1 maint: location (
194:Performance implications
3750:Central processing unit
3551:Garbage-first collector
3526:Boehm garbage collector
3432:x86 memory segmentation
3217:Dynamic voltage scaling
3000:Memory address register
2894:Branch target predictor
2858:Address generation unit
2601:Physics processing unit
2390:Central processing unit
2349:Transactions per second
2337:Instructions per second
2260:Array processing (SIMT)
1404:Stored-program computer
3556:Mark–compact algorithm
3353:Memory management unit
3023:Hardwired control unit
2905:Memory management unit
2870:Memory management unit
2619:Secure cryptoprocessor
2613:Tensor Processing Unit
2595:Vision processing unit
2329:Cycles per instruction
2323:Instructions per cycle
2270:Associative processing
1961:Instruction pipelining
1383:Processor technologies
1306:Secure Virtual Machine
734:10.1109/MM.1994.363071
702:, Arpaci-Dusseau Books
531:
486:
472:is the miss rate, and
466:
446:
426:
203:
108:
107:General working of TLB
77:in a process called a
41:memory-management unit
3106:Sum-addressed decoder
2852:Arithmetic logic unit
1979:Classic RISC pipeline
1933:Epiphany architecture
1780:Motorola 68000 series
867:Solihin, Yan (2016).
828:10.1145/146628.139708
675:Virtual address space
532:
487:
467:
447:
427:
201:
186:(FIFO) etc.; see the
106:
3503:new and delete (C++)
3227:Performance per watt
2805:replacement policies
2471:Package on a package
2361:Performance per watt
2265:Pipelined processing
2035:Tomasulo's algorithm
1840:Clipper architecture
1696:Application-specific
1409:Finite-state machine
571:address space number
565:For example, in the
541:Address-space switch
497:
476:
456:
436:
386:
156:Harvard architecture
3409:Memory segmentation
3259:Digital electronics
2912:Instruction decoder
2864:Floating-point unit
2518:Soft microprocessor
2465:System in a package
2040:Reservation station
1570:Transport-triggered
669:Page Size Extension
188:address translation
184:first in, first out
180:least recently used
3651:Automatic variable
3635:Unreachable memory
3561:Reference counting
3531:Cheney's algorithm
3513:Garbage collection
3131:Integrated circuit
2975:Processor register
2629:Baseband processor
1974:Operand forwarding
1434:Cellular automaton
1325:. 30 December 2017
1192:"Westmere Arrives"
1152:. 26 February 2019
993:on 14 October 2008
527:
482:
462:
442:
422:
204:
117:physical addresses
109:
16:Computer component
3755:Memory management
3727:
3726:
3679:Memory management
3427:Virtual 8086 mode
3326:Memory management
3292:
3291:
3181:
3180:
2800:Instruction cache
2790:Scratchpad memory
2637:
2636:
2624:Network processor
2553:Network on a chip
2508:Ultra-low-voltage
2459:Multi-chip module
2302:
2301:
2088:
2087:
2075:Branch prediction
2052:Register renaming
1946:
1945:
1928:VISC architecture
1750:Quantum computing
1745:VISC architecture
1627:Secondary storage
1543:Microarchitecture
1503:Register machines
1194:. Real World Tech
1117:978-0-12-374493-7
1087:on 9 October 2014
1023:PTR Prentice Hall
913:. 14 October 2008
878:978-0-9841630-0-7
807:Jouppi, Norman P.
777:978-0-470-12872-5
659:Memory management
575:Intel Pentium Pro
547:context switching
485:{\displaystyle h}
465:{\displaystyle p}
445:{\displaystyle m}
329:MIPS architecture
275:TLB-miss handling
3762:
3717:
3716:
3707:
3706:
3697:
3696:
3687:
3686:
3677:
3676:
3604:Dangling pointer
3599:Buffer over-read
3571:Strong reference
3442:Memory allocator
3319:
3312:
3305:
3296:
3295:
3254:Processor design
3146:Power management
3028:Instruction unit
2889:Branch predictor
2838:
2837:
2536:System on a chip
2478:
2477:
2318:Transistor count
2242:Flynn's taxonomy
2099:
2098:
1957:
1956:
1760:Addressing modes
1671:
1670:
1617:Memory hierarchy
1481:Hypercomputation
1399:Abstract machine
1376:
1369:
1362:
1353:
1352:
1335:
1334:
1332:
1330:
1315:
1309:
1299:
1293:
1292:
1280:
1274:
1271:
1265:
1264:
1252:
1246:
1245:
1243:
1241:
1230:
1224:
1223:
1221:
1210:
1204:
1203:
1201:
1199:
1187:
1181:
1180:
1168:
1162:
1161:
1159:
1157:
1142:
1136:
1135:
1129:
1121:
1103:
1097:
1096:
1094:
1092:
1086:
1079:
1065:
1059:
1053:
1047:
1046:
1037:Sun Microsystems
1033:
1027:
1026:
1012:
1006:
1005:
1000:
998:
989:. Archived from
982:
976:
973:
967:
966:
964:
962:
951:
945:
944:
942:
940:
929:
923:
922:
920:
918:
903:
897:
896:
889:
883:
882:
864:
858:
857:
839:
833:
832:
830:
802:
796:
795:
789:
781:
769:
759:
753:
752:
750:
744:. Archived from
719:
710:
704:
703:
701:
690:
536:
534:
533:
528:
491:
489:
488:
483:
471:
469:
468:
463:
451:
449:
448:
443:
431:
429:
428:
423:
317:Instruction sets
304:operating system
71:physical address
3770:
3769:
3765:
3764:
3763:
3761:
3760:
3759:
3745:Computer memory
3730:
3729:
3728:
3723:
3665:
3639:
3613:
3594:Buffer overflow
3580:
3507:
3479:
3436:
3403:
3370:
3341:
3328:
3323:
3293:
3288:
3274:Tick–tock model
3232:
3188:
3177:
3117:
3101:Address decoder
3055:
3009:
3005:Program counter
2980:Status register
2961:
2916:
2876:Load–store unit
2843:
2836:
2763:
2732:
2633:
2590:Image processor
2565:
2558:
2528:
2522:
2498:Microcontroller
2488:Embedded system
2476:
2376:
2309:
2298:
2236:
2186:
2084:
2061:
2045:Re-order buffer
2016:
1997:Data dependency
1983:
1942:
1772:
1766:
1665:
1664:Instruction set
1658:
1644:Multiprocessing
1612:Cache hierarchy
1605:Register/memory
1529:
1429:Queue automaton
1385:
1380:
1343:
1338:
1328:
1326:
1317:
1316:
1312:
1300:
1296:
1281:
1277:
1272:
1268:
1253:
1249:
1239:
1237:
1231:
1227:
1219:
1211:
1207:
1197:
1195:
1188:
1184:
1169:
1165:
1155:
1153:
1144:
1143:
1139:
1123:
1122:
1118:
1104:
1100:
1090:
1088:
1084:
1077:
1066:
1062:
1054:
1050:
1034:
1030:
1013:
1009:
996:
994:
983:
979:
974:
970:
960:
958:
952:
948:
938:
936:
931:
930:
926:
916:
914:
905:
904:
900:
891:
890:
886:
879:
865:
861:
854:
840:
836:
803:
799:
783:
782:
778:
760:
756:
751:on 1 June 2016.
748:
717:
711:
707:
699:
691:
687:
683:
655:
626:
543:
498:
495:
494:
477:
474:
473:
457:
454:
453:
437:
434:
433:
387:
384:
383:
363:
277:
249:
196:
144:primary storage
101:
95:
87:set-associative
37:physical memory
17:
12:
11:
5:
3768:
3758:
3757:
3752:
3747:
3742:
3740:Virtual memory
3725:
3724:
3722:
3721:
3711:
3701:
3691:
3689:Virtual memory
3681:
3670:
3667:
3666:
3664:
3663:
3658:
3653:
3647:
3645:
3641:
3640:
3638:
3637:
3632:
3627:
3621:
3619:
3615:
3614:
3612:
3611:
3609:Stack overflow
3606:
3601:
3596:
3590:
3588:
3582:
3581:
3579:
3578:
3576:Weak reference
3573:
3568:
3563:
3558:
3553:
3548:
3543:
3538:
3533:
3528:
3523:
3517:
3515:
3509:
3508:
3506:
3505:
3500:
3495:
3489:
3487:
3481:
3480:
3478:
3477:
3472:
3467:
3462:
3457:
3452:
3446:
3444:
3438:
3437:
3435:
3434:
3429:
3424:
3419:
3417:Protected mode
3413:
3411:
3405:
3404:
3402:
3401:
3396:
3391:
3386:
3380:
3378:
3376:Virtual memory
3372:
3371:
3369:
3368:
3362:
3356:
3349:
3347:
3343:
3342:
3340:
3339:
3333:
3330:
3329:
3322:
3321:
3314:
3307:
3299:
3290:
3289:
3287:
3286:
3281:
3279:Pin grid array
3276:
3271:
3266:
3261:
3256:
3251:
3246:
3240:
3238:
3234:
3233:
3231:
3230:
3224:
3219:
3214:
3209:
3204:
3199:
3193:
3191:
3183:
3182:
3179:
3178:
3176:
3175:
3170:
3165:
3160:
3155:
3150:
3149:
3148:
3143:
3138:
3127:
3125:
3119:
3118:
3116:
3115:
3113:Barrel shifter
3110:
3109:
3108:
3103:
3096:Binary decoder
3093:
3092:
3091:
3081:
3076:
3071:
3065:
3063:
3057:
3056:
3054:
3053:
3048:
3040:
3035:
3030:
3025:
3019:
3017:
3011:
3010:
3008:
3007:
3002:
2997:
2992:
2987:
2985:Stack register
2982:
2977:
2971:
2969:
2963:
2962:
2960:
2959:
2958:
2957:
2952:
2942:
2937:
2932:
2926:
2924:
2918:
2917:
2915:
2914:
2909:
2908:
2907:
2896:
2891:
2886:
2885:
2884:
2878:
2867:
2861:
2855:
2848:
2846:
2835:
2834:
2829:
2824:
2819:
2814:
2813:
2812:
2807:
2802:
2797:
2792:
2787:
2777:
2771:
2769:
2765:
2764:
2762:
2761:
2756:
2751:
2746:
2740:
2738:
2734:
2733:
2731:
2730:
2729:
2728:
2718:
2713:
2708:
2703:
2698:
2693:
2688:
2683:
2678:
2673:
2668:
2663:
2658:
2653:
2647:
2645:
2639:
2638:
2635:
2634:
2632:
2631:
2626:
2621:
2616:
2610:
2604:
2598:
2592:
2587:
2581:
2579:AI accelerator
2576:
2570:
2568:
2560:
2559:
2557:
2556:
2550:
2545:
2542:Multiprocessor
2539:
2532:
2530:
2524:
2523:
2521:
2520:
2515:
2510:
2505:
2500:
2495:
2493:Microprocessor
2490:
2484:
2482:
2481:By application
2475:
2474:
2468:
2462:
2456:
2451:
2446:
2441:
2436:
2431:
2426:
2424:Tile processor
2421:
2416:
2411:
2406:
2405:
2404:
2393:
2386:
2384:
2378:
2377:
2375:
2374:
2369:
2364:
2358:
2352:
2346:
2340:
2334:
2333:
2332:
2320:
2314:
2312:
2304:
2303:
2300:
2299:
2297:
2296:
2295:
2294:
2284:
2279:
2278:
2277:
2272:
2267:
2262:
2252:
2246:
2244:
2238:
2237:
2235:
2234:
2229:
2224:
2219:
2218:
2217:
2212:
2210:Hyperthreading
2202:
2196:
2194:
2192:Multithreading
2188:
2187:
2185:
2184:
2179:
2174:
2173:
2172:
2162:
2161:
2160:
2155:
2145:
2144:
2143:
2138:
2128:
2123:
2122:
2121:
2116:
2105:
2103:
2096:
2090:
2089:
2086:
2085:
2083:
2082:
2077:
2071:
2069:
2063:
2062:
2060:
2059:
2054:
2049:
2048:
2047:
2042:
2032:
2026:
2024:
2018:
2017:
2015:
2014:
2009:
2004:
1999:
1993:
1991:
1985:
1984:
1982:
1981:
1976:
1971:
1969:Pipeline stall
1965:
1963:
1954:
1948:
1947:
1944:
1943:
1941:
1940:
1935:
1930:
1925:
1922:
1921:
1920:
1918:z/Architecture
1915:
1910:
1905:
1897:
1892:
1887:
1882:
1877:
1872:
1867:
1862:
1857:
1852:
1847:
1842:
1837:
1836:
1835:
1830:
1825:
1817:
1812:
1807:
1802:
1797:
1792:
1787:
1782:
1776:
1774:
1768:
1767:
1765:
1764:
1763:
1762:
1752:
1747:
1742:
1737:
1732:
1727:
1722:
1721:
1720:
1710:
1709:
1708:
1698:
1693:
1688:
1683:
1677:
1675:
1668:
1660:
1659:
1657:
1656:
1651:
1646:
1641:
1636:
1631:
1630:
1629:
1624:
1622:Virtual memory
1614:
1609:
1608:
1607:
1602:
1597:
1592:
1582:
1577:
1572:
1567:
1562:
1561:
1560:
1550:
1545:
1539:
1537:
1531:
1530:
1528:
1527:
1526:
1525:
1520:
1515:
1510:
1500:
1495:
1490:
1489:
1488:
1483:
1478:
1473:
1468:
1463:
1458:
1453:
1446:Turing machine
1443:
1442:
1441:
1436:
1431:
1426:
1421:
1416:
1406:
1401:
1395:
1393:
1387:
1386:
1379:
1378:
1371:
1364:
1356:
1350:
1349:
1342:
1341:External links
1339:
1337:
1336:
1310:
1294:
1275:
1266:
1247:
1225:
1205:
1182:
1163:
1137:
1116:
1098:
1060:
1048:
1028:
1007:
977:
968:
946:
924:
911:Tom's Hardware
898:
884:
877:
859:
853:978-0133805918
852:
834:
821:(2): 114–123.
797:
776:
754:
705:
684:
682:
679:
678:
677:
672:
666:
661:
654:
651:
625:
622:
542:
539:
526:
523:
520:
517:
514:
511:
508:
505:
502:
481:
461:
441:
432:cycles, where
421:
418:
415:
412:
409:
406:
403:
400:
397:
394:
391:
380:
379:
376:
373:
370:
362:
359:
325:
324:
320:
308:
276:
273:
255:For instance,
248:
245:
219:memory, and a
195:
192:
121:virtual memory
94:
91:
60:virtual memory
33:virtual memory
27:) is a memory
15:
9:
6:
4:
3:
2:
3767:
3756:
3753:
3751:
3748:
3746:
3743:
3741:
3738:
3737:
3735:
3720:
3712:
3710:
3702:
3700:
3692:
3690:
3682:
3680:
3672:
3671:
3668:
3662:
3659:
3657:
3654:
3652:
3649:
3648:
3646:
3642:
3636:
3633:
3631:
3628:
3626:
3625:Fragmentation
3623:
3622:
3620:
3616:
3610:
3607:
3605:
3602:
3600:
3597:
3595:
3592:
3591:
3589:
3587:
3586:Memory safety
3583:
3577:
3574:
3572:
3569:
3567:
3564:
3562:
3559:
3557:
3554:
3552:
3549:
3547:
3544:
3542:
3539:
3537:
3534:
3532:
3529:
3527:
3524:
3522:
3519:
3518:
3516:
3514:
3510:
3504:
3501:
3499:
3496:
3494:
3491:
3490:
3488:
3486:
3482:
3476:
3473:
3471:
3468:
3466:
3463:
3461:
3458:
3456:
3453:
3451:
3448:
3447:
3445:
3443:
3439:
3433:
3430:
3428:
3425:
3423:
3420:
3418:
3415:
3414:
3412:
3410:
3406:
3400:
3397:
3395:
3392:
3390:
3389:Memory paging
3387:
3385:
3384:Demand paging
3382:
3381:
3379:
3377:
3373:
3366:
3363:
3360:
3357:
3354:
3351:
3350:
3348:
3344:
3338:
3335:
3334:
3331:
3327:
3320:
3315:
3313:
3308:
3306:
3301:
3300:
3297:
3285:
3282:
3280:
3277:
3275:
3272:
3270:
3267:
3265:
3262:
3260:
3257:
3255:
3252:
3250:
3247:
3245:
3242:
3241:
3239:
3235:
3228:
3225:
3223:
3220:
3218:
3215:
3213:
3210:
3208:
3205:
3203:
3200:
3198:
3195:
3194:
3192:
3190:
3184:
3174:
3171:
3169:
3166:
3164:
3161:
3159:
3156:
3154:
3151:
3147:
3144:
3142:
3139:
3137:
3134:
3133:
3132:
3129:
3128:
3126:
3124:
3120:
3114:
3111:
3107:
3104:
3102:
3099:
3098:
3097:
3094:
3090:
3087:
3086:
3085:
3082:
3080:
3077:
3075:
3074:Demultiplexer
3072:
3070:
3067:
3066:
3064:
3062:
3058:
3052:
3049:
3047:
3044:
3041:
3039:
3036:
3034:
3031:
3029:
3026:
3024:
3021:
3020:
3018:
3016:
3012:
3006:
3003:
3001:
2998:
2996:
2995:Memory buffer
2993:
2991:
2990:Register file
2988:
2986:
2983:
2981:
2978:
2976:
2973:
2972:
2970:
2968:
2964:
2956:
2953:
2951:
2948:
2947:
2946:
2943:
2941:
2938:
2936:
2933:
2931:
2930:Combinational
2928:
2927:
2925:
2923:
2919:
2913:
2910:
2906:
2903:
2902:
2900:
2897:
2895:
2892:
2890:
2887:
2882:
2879:
2877:
2874:
2873:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2849:
2847:
2845:
2839:
2833:
2830:
2828:
2825:
2823:
2820:
2818:
2815:
2811:
2808:
2806:
2803:
2801:
2798:
2796:
2793:
2791:
2788:
2786:
2783:
2782:
2781:
2778:
2776:
2773:
2772:
2770:
2766:
2760:
2757:
2755:
2752:
2750:
2747:
2745:
2742:
2741:
2739:
2735:
2727:
2724:
2723:
2722:
2719:
2717:
2714:
2712:
2709:
2707:
2704:
2702:
2699:
2697:
2694:
2692:
2689:
2687:
2684:
2682:
2679:
2677:
2674:
2672:
2669:
2667:
2664:
2662:
2659:
2657:
2654:
2652:
2649:
2648:
2646:
2644:
2640:
2630:
2627:
2625:
2622:
2620:
2617:
2614:
2611:
2608:
2605:
2602:
2599:
2596:
2593:
2591:
2588:
2585:
2582:
2580:
2577:
2575:
2572:
2571:
2569:
2567:
2561:
2554:
2551:
2549:
2546:
2543:
2540:
2537:
2534:
2533:
2531:
2525:
2519:
2516:
2514:
2511:
2509:
2506:
2504:
2501:
2499:
2496:
2494:
2491:
2489:
2486:
2485:
2483:
2479:
2472:
2469:
2466:
2463:
2460:
2457:
2455:
2452:
2450:
2447:
2445:
2442:
2440:
2437:
2435:
2432:
2430:
2427:
2425:
2422:
2420:
2417:
2415:
2412:
2410:
2407:
2403:
2400:
2399:
2397:
2394:
2391:
2388:
2387:
2385:
2383:
2379:
2373:
2370:
2368:
2365:
2362:
2359:
2356:
2353:
2350:
2347:
2344:
2341:
2338:
2335:
2330:
2327:
2326:
2324:
2321:
2319:
2316:
2315:
2313:
2311:
2305:
2293:
2290:
2289:
2288:
2285:
2283:
2280:
2276:
2273:
2271:
2268:
2266:
2263:
2261:
2258:
2257:
2256:
2253:
2251:
2248:
2247:
2245:
2243:
2239:
2233:
2230:
2228:
2225:
2223:
2220:
2216:
2213:
2211:
2208:
2207:
2206:
2203:
2201:
2198:
2197:
2195:
2193:
2189:
2183:
2180:
2178:
2175:
2171:
2168:
2167:
2166:
2163:
2159:
2156:
2154:
2151:
2150:
2149:
2146:
2142:
2139:
2137:
2134:
2133:
2132:
2129:
2127:
2124:
2120:
2117:
2115:
2112:
2111:
2110:
2107:
2106:
2104:
2100:
2097:
2095:
2091:
2081:
2078:
2076:
2073:
2072:
2070:
2068:
2064:
2058:
2055:
2053:
2050:
2046:
2043:
2041:
2038:
2037:
2036:
2033:
2031:
2030:Scoreboarding
2028:
2027:
2025:
2023:
2019:
2013:
2012:False sharing
2010:
2008:
2005:
2003:
2000:
1998:
1995:
1994:
1992:
1990:
1986:
1980:
1977:
1975:
1972:
1970:
1967:
1966:
1964:
1962:
1958:
1955:
1953:
1949:
1939:
1936:
1934:
1931:
1929:
1926:
1923:
1919:
1916:
1914:
1911:
1909:
1906:
1904:
1901:
1900:
1898:
1896:
1893:
1891:
1888:
1886:
1883:
1881:
1878:
1876:
1873:
1871:
1868:
1866:
1863:
1861:
1858:
1856:
1853:
1851:
1848:
1846:
1843:
1841:
1838:
1834:
1831:
1829:
1826:
1824:
1821:
1820:
1818:
1816:
1813:
1811:
1808:
1806:
1805:Stanford MIPS
1803:
1801:
1798:
1796:
1793:
1791:
1788:
1786:
1783:
1781:
1778:
1777:
1775:
1769:
1761:
1758:
1757:
1756:
1753:
1751:
1748:
1746:
1743:
1741:
1738:
1736:
1733:
1731:
1728:
1726:
1723:
1719:
1716:
1715:
1714:
1711:
1707:
1704:
1703:
1702:
1699:
1697:
1694:
1692:
1689:
1687:
1684:
1682:
1679:
1678:
1676:
1672:
1669:
1667:
1666:architectures
1661:
1655:
1652:
1650:
1647:
1645:
1642:
1640:
1637:
1635:
1634:Heterogeneous
1632:
1628:
1625:
1623:
1620:
1619:
1618:
1615:
1613:
1610:
1606:
1603:
1601:
1598:
1596:
1593:
1591:
1588:
1587:
1586:
1585:Memory access
1583:
1581:
1578:
1576:
1573:
1571:
1568:
1566:
1563:
1559:
1556:
1555:
1554:
1551:
1549:
1546:
1544:
1541:
1540:
1538:
1536:
1532:
1524:
1521:
1519:
1518:Random-access
1516:
1514:
1511:
1509:
1506:
1505:
1504:
1501:
1499:
1498:Stack machine
1496:
1494:
1491:
1487:
1484:
1482:
1479:
1477:
1474:
1472:
1469:
1467:
1464:
1462:
1459:
1457:
1454:
1452:
1449:
1448:
1447:
1444:
1440:
1437:
1435:
1432:
1430:
1427:
1425:
1422:
1420:
1417:
1415:
1414:with datapath
1412:
1411:
1410:
1407:
1405:
1402:
1400:
1397:
1396:
1394:
1392:
1388:
1384:
1377:
1372:
1370:
1365:
1363:
1358:
1357:
1354:
1348:
1345:
1344:
1324:
1323:Kernelnewbies
1320:
1314:
1307:
1304:
1298:
1290:
1286:
1279:
1270:
1263:(3): 179–192.
1262:
1258:
1251:
1236:
1229:
1218:
1217:
1209:
1193:
1186:
1178:
1174:
1167:
1151:
1150:GeeksforGeeks
1147:
1141:
1133:
1127:
1119:
1113:
1109:
1102:
1083:
1076:
1075:
1070:
1064:
1057:
1052:
1044:
1043:
1038:
1032:
1024:
1020:
1019:
1011:
1004:
992:
988:
985:Welsh, Matt.
981:
972:
957:
950:
934:
928:
912:
908:
902:
894:
888:
880:
874:
870:
863:
855:
849:
845:
838:
829:
824:
820:
816:
812:
808:
801:
793:
787:
779:
773:
768:
767:
758:
747:
743:
739:
735:
731:
727:
723:
716:
709:
698:
697:
689:
685:
676:
673:
670:
667:
665:
662:
660:
657:
656:
650:
648:
644:
640:
636:
630:
621:
619:
615:
609:
607:
603:
599:
594:
592:
588:
585:
580:
576:
572:
568:
563:
561:
556:
553:
548:
538:
524:
521:
518:
515:
512:
509:
506:
503:
500:
479:
459:
439:
419:
416:
413:
410:
404:
401:
398:
392:
389:
377:
374:
371:
368:
367:
366:
358:
356:
352:
347:
345:
340:
337:
332:
330:
321:
318:
313:
309:
305:
301:
298:
294:
290:
286:
282:
281:
280:
272:
270:
265:
262:
258:
253:
247:Multiple TLBs
244:
242:
238:
233:
232:TLB thrashing
229:
224:
222:
217:
212:
209:
200:
191:
189:
185:
181:
175:
171:
169:
166:(ITLB) and a
165:
161:
157:
152:
150:
145:
141:
136:
134:
130:
126:
122:
118:
114:
105:
100:
90:
88:
84:
80:
76:
72:
68:
63:
61:
58:
54:
50:
46:
42:
38:
34:
30:
26:
22:
3358:
3284:Chip carrier
3222:Clock gating
3141:Mixed-signal
3038:Write buffer
3015:Control unit
2880:
2827:Clock signal
2566:accelerators
2548:Cypress PSoC
2205:Simultaneous
2022:Out-of-order
1654:Neuromorphic
1535:Architecture
1493:Belt machine
1486:Zeno machine
1419:Hierarchical
1327:. Retrieved
1322:
1313:
1297:
1288:
1284:
1278:
1269:
1260:
1256:
1250:
1238:. Retrieved
1228:
1215:
1208:
1196:. Retrieved
1185:
1166:
1154:. Retrieved
1149:
1140:
1107:
1101:
1089:. Retrieved
1082:the original
1073:
1063:
1051:
1041:
1031:
1017:
1010:
1002:
995:. Retrieved
991:the original
980:
971:
959:. Retrieved
949:
937:. Retrieved
927:
915:. Retrieved
901:
887:
868:
862:
843:
837:
818:
814:
800:
765:
757:
746:the original
728:(5): 13–14.
725:
721:
708:
695:
688:
631:
627:
610:
595:
590:
570:
564:
557:
551:
544:
381:
364:
348:
341:
333:
326:
311:
302:, which the
291:register on
278:
266:
254:
250:
226:If the page
225:
215:
213:
207:
205:
183:
179:
176:
172:
167:
163:
153:
137:
110:
78:
64:
24:
20:
18:
3630:Memory leak
3069:Multiplexer
3033:Data buffer
2744:Single-core
2716:bit slicing
2574:Coprocessor
2429:Coprocessor
2310:performance
2232:Cooperative
2222:Speculative
2182:Distributed
2141:Superscalar
2126:Instruction
2094:Parallelism
2067:Speculative
1899:System/3x0
1771:Instruction
1548:Von Neumann
1461:Post–Turing
1156:10 February
997:16 November
939:24 November
917:24 November
602:Intel 80486
598:Intel 80386
567:Alpha 21264
361:Typical TLB
287:(using the
285:page tables
241:cache lines
228:working set
216:present bit
133:main memory
83:PowerPC 604
3734:Categories
3394:Page table
3189:management
3084:Multiplier
2945:Logic gate
2935:Sequential
2842:Functional
2822:Clock rate
2795:Data cache
2768:Components
2749:Multi-core
2737:Core count
2227:Preemptive
2131:Pipelining
2114:Bit-serial
2057:Wide-issue
2002:Structural
1924:Tilera ISA
1890:MicroBlaze
1860:ETRAX CRIS
1755:Comparison
1600:Load–store
1580:Endianness
1091:1 December
961:22 October
722:IEEE Micro
681:References
297:page fault
221:page fault
149:cache miss
113:page-table
97:See also:
75:page table
3541:Finalizer
3422:Real mode
3123:Circuitry
3043:Microcode
2967:Registers
2810:coherence
2785:CPU cache
2643:Word size
2308:Processor
1952:Execution
1855:DEC Alpha
1833:Power ISA
1649:Cognitive
1456:Universal
1198:6 January
1126:cite book
786:cite book
522:×
510:×
402:−
300:exception
237:thrashing
140:CPU cache
79:page walk
57:segmented
49:CPU cache
3475:ptmalloc
3470:mimalloc
3460:jemalloc
3450:dlmalloc
3346:Hardware
3061:Datapath
2754:Manycore
2726:variable
2564:Hardware
2200:Temporal
1880:OpenRISC
1575:Cellular
1565:Dataflow
1558:modified
1240:23 March
809:(1992).
742:11603864
653:See also
614:Meltdown
587:Intel 64
336:SPARC V9
312:TLB miss
129:segments
93:Overview
47:and the
3546:Garbage
3465:libumem
3367:(IOMMU)
3237:Related
3168:Quantum
3158:Digital
3153:Boolean
3051:Counter
2950:Quantum
2711:512-bit
2706:256-bit
2701:128-bit
2544:(MPSoC)
2529:on chip
2527:Systems
2345:(FLOPS)
2158:Process
2007:Control
1989:Hazards
1875:Itanium
1870:Unicore
1828:PowerPC
1553:Harvard
1513:Pointer
1508:Counter
1466:Quantum
1329:31 July
1177:LWN.net
639:Nehalem
355:PALcode
344:Itanium
269:Skylake
261:Nehalem
182:(LRU),
3618:Issues
3173:Switch
3163:Analog
2901:(IMC)
2872:(MMU)
2721:others
2696:64-bit
2691:48-bit
2686:32-bit
2681:24-bit
2676:16-bit
2671:15-bit
2666:12-bit
2503:Mobile
2419:Stream
2414:Barrel
2409:Vector
2398:(GPU)
2357:(SUPS)
2325:(IPC)
2177:Memory
2170:Vector
2153:Thread
2136:Scalar
1938:Others
1885:RISC-V
1850:SuperH
1819:Power
1815:MIPS-X
1790:PDP-11
1639:Fabric
1391:Models
1114:
875:
850:
774:
740:
664:Paging
641:) and
3644:Other
3455:Hoard
3361:(TLB)
3355:(MMU)
3229:(PPW)
3187:Power
3079:Adder
2955:Array
2922:Logic
2883:(TLB)
2866:(FPU)
2860:(AGU)
2854:(ALU)
2844:units
2780:Cache
2661:8-bit
2656:4-bit
2651:1-bit
2615:(TPU)
2609:(DSP)
2603:(PPU)
2597:(VPU)
2586:(GPU)
2555:(NoC)
2538:(SoC)
2473:(PoP)
2467:(SiP)
2461:(MCM)
2402:GPGPU
2392:(CPU)
2382:Types
2363:(PPW)
2351:(TPS)
2339:(IPS)
2331:(CPI)
2102:Level
1913:S/390
1908:S/370
1903:S/360
1845:SPARC
1823:POWER
1706:TRIPS
1674:Types
1220:(PDF)
1085:(PDF)
1078:(PDF)
749:(PDF)
738:S2CID
718:(PDF)
700:(PDF)
671:(PSE)
635:Intel
351:Alpha
257:Intel
154:In a
125:pages
53:paged
29:cache
3207:ACPI
2940:Glue
2832:FIFO
2775:Core
2513:ASIP
2454:CPLD
2449:FPOA
2444:FPGA
2439:ASIC
2292:SPMD
2287:MIMD
2282:MISD
2275:SWAR
2255:SIMD
2250:SISD
2165:Data
2148:Task
2119:Word
1865:M32R
1810:MIPS
1773:sets
1740:ZISC
1735:NISC
1730:OISC
1725:MISC
1718:EPIC
1713:VLIW
1701:EDGE
1691:RISC
1686:CISC
1595:HUMA
1590:NUMA
1331:2023
1291:(3).
1242:2018
1200:2018
1158:2021
1132:link
1112:ISBN
1093:2010
999:2008
963:2022
941:2010
919:2010
873:ISBN
848:ISBN
792:link
772:ISBN
519:0.01
507:0.99
349:The
342:The
334:The
327:The
3202:APM
3197:PMU
3089:CPU
3046:ROM
2817:Bus
2434:PAL
2109:Bit
1895:LMC
1800:ARM
1795:x86
1785:VAX
1303:AMD
823:doi
730:doi
647:SVM
643:AMD
606:ARM
579:CR4
552:any
293:x86
289:CR3
259:'s
158:or
55:or
45:CPU
35:to
25:TLB
3736::
3136:3D
1321:.
1289:10
1287:.
1261:10
1259:.
1175:.
1148:.
1128:}}
1124:{{
1071:.
1039:.
1021:.
1001:.
909:.
819:20
817:.
813:.
788:}}
784:{{
736:.
726:14
724:.
720:.
525:30
501:30
208:is
62:.
19:A
3318:e
3311:t
3304:v
1375:e
1368:t
1361:v
1333:.
1244:.
1202:.
1179:.
1160:.
1134:)
1120:.
1095:.
1058:.
1025:.
965:.
943:.
921:.
881:.
856:.
831:.
825::
794:)
780:.
732::
645:(
637:(
516:+
513:1
504:+
480:h
460:p
440:m
420:m
417:p
414:+
411:h
408:)
405:p
399:1
396:(
393:+
390:m
23:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.