Knowledge

Translation lookaside buffer

Source đź“ť

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:(

Index

cache
virtual memory
physical memory
memory-management unit
CPU
CPU cache
paged
segmented
virtual memory
content-addressable memory
physical address
page table
PowerPC 604
set-associative
CPU cache § Address translation

page-table
physical addresses
virtual memory
pages
segments
main memory
CPU cache
primary storage
cache miss
Harvard architecture
modified Harvard architecture
address translation

page fault

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

↑