WO2008153799A1 - Caching of microcode emulation memory - Google Patents
Caching of microcode emulation memory Download PDFInfo
- Publication number
- WO2008153799A1 WO2008153799A1 PCT/US2008/006746 US2008006746W WO2008153799A1 WO 2008153799 A1 WO2008153799 A1 WO 2008153799A1 US 2008006746 W US2008006746 W US 2008006746W WO 2008153799 A1 WO2008153799 A1 WO 2008153799A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cache
- level
- microcode
- processor
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Definitions
- This invention relates to microprocessors and, more particularly, to emulation of complex instructions by microcode, and still more particularly, to caching of memory used during such emulation.
- CISC complex instruction set computer
- RISC reduced instruction set computer
- microprocessors commonly include multiple memory caches, arranged hierarchically and shared by multiple cores or execution units.
- a variety of caching architectures are used and include various combinations of on-chip cache and off- chip cache.
- Memory operations that read data from cache or memory may be referred to more succinctly herein as "loads”.
- Memory operations that write data to cache or memory may be referred to more succinctly herein as "stores”.
- a load or a store may target a particular cache line (or portion of a cache line) and include an address identifying the targeted line as well as including data to be loaded from or stored within the cache line.
- caching the microcode emulation memory offers the performance advantage of the relatively faster access time of cache memory compared to system memory.
- the shortest access times are generally those associated with the lowest level of the cache hierarchy, commonly referred to as Ll -cache, or simply Ll. Therefore, it is desirable to cache the microcode emulation memory in Ll. Such performance advantages have often been reinforced by the permanent allocation of a portion of Ll for microcode emulation memory.
- Ll increases the cost and complexity of the microprocessor. Also, if the microcode emulation memory is permanently allocated in Ll, this portion of Ll is not available to other processes. In order to address the above concerns, what is needed is a way to improve availability of space in a given size Ll-cache to all processes while maintaining the advantages of caching the microcode emulation memory.
- the processor includes a cache hierarchy including at least a first level- 1 cache and a higher-level cache.
- the processor is configured to map a first portion of a physical memory space to a first portion of the higher-level cache, execute instructions, at least some of which comprise microcode, allow microcode to access the first portion of the higher- level cache, and prevent instructions that do not comprise microcode from accessing the first portion of the higher-level cache.
- the higher-level cache is a level- 2 cache.
- the first portion of the physical memory space is permanently allocated for use by microcode.
- the processor is configured to move one or more cache lines of the first portion of the higher-level cache from the higher-level cache to a first portion of the first level- 1 cache.
- the processor is further configured to allow microcode to access the first portion of the first level- 1 cache and prevent instructions that do not comprise microcode from accessing the first portion of the first level- 1 cache.
- the processor is configured to detect a microcode access signal.
- the processor is further configured to prevent instructions from accessing the first portion of the physical memory space if the microcode access signal is not asserted and allow instructions to access the first portion of the physical memory space if the microcode access signal is asserted.
- the processor includes a translation lookaside buffer (TLB), wherein to prevent instructions that do not comprise microcode from accessing the first portion of the physical memory space the processor is further configured to disallow TLB refills to the first portion of the physical memory space.
- TLB translation lookaside buffer
- FIG. 1 is a generalized block diagram of one embodiment of a computer system.
- FIG. 2 illustrates one embodiment of a virtual memory and cache architecture.
- FIG. 3 illustrates one embodiment of a process for accessing a memory hierarchy including microcode emulation memory.
- FIG. 4 illustrates one embodiment of a process for accessing microcode emulation memory in a level- 1 cache.
- FIG. 5 is a block diagram of one embodiment of a computer system including a L2 data cache and microcode emulation memory coupled to a variety of system components.
- FIG. 1 is a generalized block diagram of one embodiment of a computer system 100.
- processor 110 is shown coupled to a memory 150.
- Memory 150 may include SDRAM, SRAM, ROM, DRAM and/or other conventional memory devices.
- Processor 110 includes a core 120, an L2 data cache 130, and an L2 translation lookaside buffer (TLB) 140.
- Core 120 includes an execution unit 122, a load/store unit 124, an Ll data cache 126, and an Ll TLB 128.
- L2 data cache 130 includes a microcode emulation memory 135.
- processor 110 may include more than one core, each core including a level- 1 data cache and each core sharing a single level-2 data cache.
- Ll data cache 126 may be separate from core 120.
- additional cache levels may be included in computer system 100, such as a level-3 cache, either included in processor 110 or separate from processor 110.
- microcode emulation memory 135 may be included in any cache level above level-1.
- a variety of other embodiments are also contemplated. However, for ease of understanding, the examples that follow will assume that space is permanently allocated in a level-2 data cache for microcode emulation memory 135.
- execution unit 122 may receive the data portion of loads to be executed from load/store unit 124 via link 161 and convey the data portion of stores to load/store unit 124 via link 162.
- Load/store unit 124 may receive the data portion of loads to be executed from Ll data cache 126 via link 163 and convey the data portion of stores to Ll data cache 126 via link 164.
- Ll data cache 126 may receive the data portion of loads from L2 data cache 130 via link 165 and convey the data portion of stores to L2 data cache 130 via link 166.
- L2 data cache 130 may receive the data portion of loads from and convey the data portion of stores to memory 150 via link 167.
- Ll TLB 128 is shown coupled to Ll data cache 126 via link 171, to L2 data cache 130 via link 172, and to L2 TLB 140 via link 173.
- L2 TLB 140 is also shown coupled to L2 data cache 130 via link 174.
- Ll data cache 126, Ll TLB 128, L2 data cache 130, and L2 TLB 140 may perform conventional address translation and caching functions.
- Ll TLB 128 may cache mappings of virtual addresses to physical addresses. When a memory access request occurs, Ll TLB 128 may be checked to see if a mapping of the desired virtual address to a physical address is cached.
- Ll TLB 128 Mappings cached in Ll TLB 128 may be used to determine if a desired cache line is present in Ll data cache 126. If a desired cache line is not present in Ll data cache 126, i.e., there is an Ll cache miss, L2 TLB 140 may be checked to see if a mapping of the desired virtual address to a physical address is cached. Mappings cached in L2 TLB 140 may be used to determine if a desired cache line is present in L2 data cache 130. When a cache miss occurs in Ll data cache 126, in order to make room for a new entry, a cache line may be evicted from Ll data cache 126 to L2 data cache 130.
- FIG. 2 illustrates one embodiment of a virtual memory and cache architecture that may be used with processor 110.
- a virtual memory space 210 is shown, portions of which are mapped to a physical memory address space 220. Portions of physical memory address space 220 are shown mapped to L2 cache space 230, portions of which are in turn mapped to Ll cache space 240. Each application that executes on processor 110 may employ a separate virtual memory address space.
- Virtual memory address space 210 includes blocks 211-215 that represent the portions of virtual memory that are mapped to physical memory address space 220 and are available to be accessed by an application at a given point in time.
- physical memory address space 220 includes blocks 221-224 that represent the portions of physical memory that are cached in L2 cache space 230.
- L2 cache space 230 includes blocks 231- 233 that represent the portions of L2 cache that are cached in Ll cache space 240. More particularly, blocks 231, 232, and 233 of L2 cache space 230 are mapped to blocks 242, 243, and 241 of Ll cache space 240, respectively.
- each block described above may represent one of a set of cache lines, blocks of a uniform size, a group of cache lines or blocks, or blocks of varying sizes, hi alternative embodiments, any of virtual memory address space 210, physical memory address space 220, L2 cache space 230, and Ll cache space 240 may include more or fewer blocks than the number shown in FIG. 2.
- block 221 may be reserved in physical memory space 220 as microcode emulation memory.
- block 231 of L2 cache space 230 may be permanently reserved for caching the contents of microcode emulation memory.
- block 231 may be cached in level 1 cache, such as in block 242, as shown in FIG. 2.
- block 242 may not be permanently reserved for the use of microcode emulation memory, as is block 231.
- the blocks that are cached in Ll may change from time to time, depending on program execution. Accordingly, microcode emulation memory may be evicted from Ll to L2, where block 231 is reserved for its use.
- FIG. 3 illustrates one embodiment of a process 300 for accessing a memory hierarchy including microcode emulation memory.
- a memory access may begin with a check for the presence of a microcode access signal (not shown) associated with each instruction decoded by an execution unit (decision block 310). For example, in one embodiment, a bit of each decoded instruction may be used as a microcode access signal.
- microcode instructions may have a special opcode that serves as a microcode access signal and by which they may be identified as microcode.
- any of a variety of alternative microcode access signals may be conveyed from an execution unit to a cache controller to indicate whether or not an instruction is a microcode instruction. If a microcode access signal is detected, then access to the microcode emulation memory may be allowed (block 320) and the access is completed. [0021] If the microcode access signal is not detected, process 300 may proceed as follows. One or more TLBs may be searched to find an entry matching the cache line targeted by the access (block 330). If a matching entry is found in an Ll TLB (decision block 340), then the targeted cache line may be accessed (block 390) and the access is completed.
- the targeted cache line may be moved from the L2 cache to the Ll cache (block 360), the targeted cache line may be accessed (block 390), and the access is completed. If a matching entry is not found in either Ll or L2 cache, then an address translation may be performed (block 370). If the result of the address translation produces a target address that is located in the microcode emulation memory (decision block 380), then the access may be prevented (block 384) ending the access attempt.
- FIG. 4 illustrates one embodiment of a process 400 for accessing microcode emulation memory in a level- 1 cache.
- An access request targeted to microcode emulation memory may begin with a check to see if the targeted cache line is cached in an Ll cache (decision block 410). If so, access to the targeted cache line may be allowed (block 420) and the access is completed.
- FIG. 5 a block diagram of one embodiment of a computer system 500 including L2 data cache 560 and microcode emulation memory 135 coupled to a variety of system components is shown.
- processor 510 is shown coupled to peripherals 520 and to a memory 530.
- Peripherals 520 may include any of a variety of devices such as network interfaces, timing circuits, storage media, input/output devices, etc. that may be found in a conventional computer system.
- Memory 530 may include SDRAM, SRAM, ROM, DRAM and/or other conventional memory devices.
- Processor 510 includes cores 540A and 540B, write coalescing cache 550, level-2 data cache 560, and I/O interface 570. I/O interface 570 may couple each of cores 540 to peripherals 520. Elements referred to herein by a reference numeral followed by a letter may be collectively referred to by the reference numeral alone.
- cores 540A and 540B may be referred to as cores 540 and an unspecified one of cores 540 may be referred to as a core 540.
- Each of cores 540 includes a level- 1 data cache 542, a store logic unit 544, and a load/store pipeline 546.
- Store logic unit 544 (alternately referred to as "store unit") may represent a portion of a load/store unit, a separate logic unit, or a combination thereof.
- Store logic 544 is coupled to both level- 1 data cache 542 and write coalescing cache 550 to enable core 540 to write to either cache level.
- store logic 544 may convey stores 584 to level- 1 data cache 542 and stores 582 to write coalescing cache 550.
- Write coalescing cache 550 may be further coupled to level-2 data cache 560 via fills 564 and evicts 566.
- Write coalescing cache 550 may coalesce stores 582 with fills 564 to produce a reduced number of evicts 566.
- Level-2 data cache 560 may be further coupled to each level- 1 data cache 542. More specifically, level-2 data cache 560 may convey fills 562 to level- 1 data cache 542.
- Level-2 data cache 560 may also be bi-directionally coupled to memory 530.
- core 540 may execute a stream of instructions that, when decoded, cause loads 586 from Ll data cache 542 to load/store pipeline 546 and/or stores 580 from load/store pipeline 546 to store logic 544.
- the instructions executed by core 540 may include execution of microcode.
- microcode execution requires access to a cache line in microcode emulation memory 135, the targeted cache line may be accessed and, if necessary, moved from L2 data cache 560 to Ll data cache 542 using the process described in FIG. 4 above. Once the targeted cache line is moved to Ll data cache 542, it may be accessed via loads 586 and/or stores 580 and 584.
- system 500 may include two cores, in alternative embodiments more than two cores may be included and/or each core may represent a cluster of execution units. Additional level-2 caches may also be included in further alternative embodiments in which more than two cores are included.
- level-2 data cache 560 is shown coupled directly to memory 530 and memory 530 is shown as off-processor memory, processor 510 may include a memory controller and/or on-processor memory. Alternatively, an off-processor memory controller may couple level-2 data cache 560 to memory 530.
- processor core and memory configurations will be apparent to one of ordinary skill in the art.
- the program instructions that implement the methods and/or mechanisms may be conveyed or stored on a computer accessible medium.
- a computer accessible medium Numerous types of media which are configured to store program instructions are available and include hard disks, floppy disks, CD-ROM, DVD, flash memory, Programmable ROMs (PROM), random access memory (RAM), and various other forms of volatile or non-volatile storage.
- Still other forms of media configured to convey program instructions for access by a computing device include terrestrial and non-terrestrial communication links such as network, wireless, and satellite links on which electrical, electromagnetic, optical, or digital signals may be conveyed.
- various embodiments may further include receiving, sending or storing instructions and/or data implemented in accordance with the foregoing description upon a computer accessible medium.
- This invention may generally be applicable to microprocessors.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE112008001473.6T DE112008001473B4 (de) | 2007-05-29 | 2008-05-28 | Zwischenspeicherung eines Mikrocodierungsemulationsspeichers |
| GB0920954.5A GB2462556B (en) | 2007-05-29 | 2008-05-28 | Caching of microcode emulation memory |
| KR1020097026820A KR101503865B1 (ko) | 2007-05-29 | 2008-05-28 | 마이크로코드 에뮬레이션 메모리의 캐싱 |
| JP2010510322A JP5496085B2 (ja) | 2007-05-29 | 2008-05-28 | マイクロコードエミュレーションメモリのキャッシング |
| CN200880018278.4A CN101707881B (zh) | 2007-05-29 | 2008-05-28 | 微码仿真存储器的高速缓存 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/754,589 US7734873B2 (en) | 2007-05-29 | 2007-05-29 | Caching of microcode emulation memory |
| US11/754,589 | 2007-05-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2008153799A1 true WO2008153799A1 (en) | 2008-12-18 |
Family
ID=39708011
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2008/006746 Ceased WO2008153799A1 (en) | 2007-05-29 | 2008-05-28 | Caching of microcode emulation memory |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7734873B2 (enExample) |
| JP (1) | JP5496085B2 (enExample) |
| KR (1) | KR101503865B1 (enExample) |
| CN (1) | CN101707881B (enExample) |
| DE (1) | DE112008001473B4 (enExample) |
| GB (1) | GB2462556B (enExample) |
| TW (1) | TWI457826B (enExample) |
| WO (1) | WO2008153799A1 (enExample) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8296528B2 (en) * | 2008-11-03 | 2012-10-23 | Intel Corporation | Methods and systems for microcode patching |
| US20120017039A1 (en) * | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Caching using virtual memory |
| US9529729B2 (en) * | 2010-11-16 | 2016-12-27 | International Business Machines Corporation | Location of memory management translations in an emulated processor |
| US9251093B2 (en) | 2011-05-19 | 2016-02-02 | International Business Machines Corporation | Managing the translation look-aside buffer (TLB) of an emulated machine |
| CN106469020B (zh) * | 2015-08-19 | 2019-08-09 | 旺宏电子股份有限公司 | 高速缓存元件与控制方法及其应用系统 |
| US10884751B2 (en) | 2018-07-13 | 2021-01-05 | Advanced Micro Devices, Inc. | Method and apparatus for virtualizing the micro-op cache |
| US11016763B2 (en) | 2019-03-08 | 2021-05-25 | Advanced Micro Devices, Inc. | Implementing a micro-operation cache with compaction |
| US11720360B2 (en) | 2020-09-11 | 2023-08-08 | Apple Inc. | DSB operation with excluded region |
| CN119025052B (zh) * | 2024-10-29 | 2025-02-28 | 上海芯力基半导体有限公司 | 一种处理器及其内存读取方法 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1997013194A1 (en) * | 1995-10-06 | 1997-04-10 | Advanced Micro Divices, Inc. | Risc86 instruction set |
| US20060174079A1 (en) * | 2005-01-28 | 2006-08-03 | Nokia Corporation | Computer system |
Family Cites Families (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4901235A (en) * | 1983-10-28 | 1990-02-13 | Data General Corporation | Data processing system having unique multilevel microcode architecture |
| JPH0738175B2 (ja) * | 1987-10-20 | 1995-04-26 | 富士通株式会社 | 仮想記憶装置のデータ保護検査方法 |
| US5278973A (en) * | 1989-03-27 | 1994-01-11 | Unisys Corporation | Dual operating system computer |
| US5132927A (en) * | 1990-10-09 | 1992-07-21 | Tandem Computers Incorporated | System for cache space allocation using selective addressing |
| WO1993006549A1 (en) * | 1991-09-19 | 1993-04-01 | Chips And Technologies, Inc. | A system for performing input and output operations to and from a processor |
| US5905997A (en) | 1994-04-29 | 1999-05-18 | Amd Inc. | Set-associative cache memory utilizing a single bank of physical memory |
| US5826052A (en) * | 1994-04-29 | 1998-10-20 | Advanced Micro Devices, Inc. | Method and apparatus for concurrent access to multiple physical caches |
| JP3177117B2 (ja) * | 1994-05-11 | 2001-06-18 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 複数のノード内の制御コードを更新する方法および装置 |
| JPH07311752A (ja) * | 1994-05-11 | 1995-11-28 | Internatl Business Mach Corp <Ibm> | 分散データ処理システム及び初期プログラムロード方法 |
| US5864689A (en) * | 1995-12-05 | 1999-01-26 | Advanced Micro Devices, Inc. | Microprocessor configured to selectively invoke a microcode DSP function or a program subroutine in response to a target address value of branch instruction |
| US5950012A (en) * | 1996-03-08 | 1999-09-07 | Texas Instruments Incorporated | Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes |
| US5796972A (en) * | 1997-01-14 | 1998-08-18 | Unisys Corporation | Method and apparatus for performing microcode paging during instruction execution in an instruction processor |
| US6141740A (en) * | 1997-03-03 | 2000-10-31 | Advanced Micro Devices, Inc. | Apparatus and method for microcode patching for generating a next address |
| US5889978A (en) * | 1997-04-18 | 1999-03-30 | Intel Corporation | Emulation of interrupt control mechanism in a multiprocessor system |
| AU7575398A (en) | 1998-05-15 | 1999-12-06 | Richard Rubinstein | Shared, reconfigurable cache memory execution subsystem |
| JP2000194602A (ja) * | 1998-12-28 | 2000-07-14 | Nec Corp | 情報処理装置、マイクロプロセッサ及び外部キャッシュメモリの制御方法 |
| US6745306B1 (en) * | 1999-07-29 | 2004-06-01 | Microsoft Corporation | Method and system for restricting the load of physical address translations of virtual addresses |
| US6457100B1 (en) * | 1999-09-15 | 2002-09-24 | International Business Machines Corporation | Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls |
| US6397301B1 (en) * | 1999-12-29 | 2002-05-28 | Intel Corporation | Preventing access to secure area of a cache |
| US6643800B1 (en) * | 2000-02-02 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus for testing microarchitectural features by using tests written in microcode |
| US6804772B2 (en) * | 2000-06-12 | 2004-10-12 | Broadcom Corporation | Dynamic field patchable microarchitecture |
| EP1182570A3 (en) * | 2000-08-21 | 2004-08-04 | Texas Instruments Incorporated | TLB with resource ID field |
| US6754765B1 (en) * | 2001-05-14 | 2004-06-22 | Integrated Memory Logic, Inc. | Flash memory controller with updateable microcode |
| US7346757B2 (en) * | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
| US7797492B2 (en) * | 2004-02-20 | 2010-09-14 | Anoop Mukker | Method and apparatus for dedicating cache entries to certain streams for performance optimization |
| US7370243B1 (en) * | 2004-06-30 | 2008-05-06 | Sun Microsystems, Inc. | Precise error handling in a fine grain multithreaded multicore processor |
| US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
| US7095342B1 (en) * | 2005-03-31 | 2006-08-22 | Intel Corporation | Compressing microcode |
| US7827390B2 (en) * | 2007-04-10 | 2010-11-02 | Via Technologies, Inc. | Microprocessor with private microcode RAM |
| US7681020B2 (en) * | 2007-04-18 | 2010-03-16 | International Business Machines Corporation | Context switching and synchronization |
-
2007
- 2007-05-29 US US11/754,589 patent/US7734873B2/en active Active
-
2008
- 2008-05-28 DE DE112008001473.6T patent/DE112008001473B4/de active Active
- 2008-05-28 KR KR1020097026820A patent/KR101503865B1/ko not_active Expired - Fee Related
- 2008-05-28 CN CN200880018278.4A patent/CN101707881B/zh active Active
- 2008-05-28 GB GB0920954.5A patent/GB2462556B/en active Active
- 2008-05-28 TW TW097119629A patent/TWI457826B/zh active
- 2008-05-28 WO PCT/US2008/006746 patent/WO2008153799A1/en not_active Ceased
- 2008-05-28 JP JP2010510322A patent/JP5496085B2/ja active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1997013194A1 (en) * | 1995-10-06 | 1997-04-10 | Advanced Micro Divices, Inc. | Risc86 instruction set |
| US20060174079A1 (en) * | 2005-01-28 | 2006-08-03 | Nokia Corporation | Computer system |
Non-Patent Citations (1)
| Title |
|---|
| BRUCE L. JACOB, TREVOR N. MUDGE: "A look at several memory management units, TLB-refill mechanisms, and page table organizations", ACM PROCEEDINGS OF ASPLOS-VIII, SAN JOSE CA, USA, OCT. 3-7, 1998, vol. 32, no. 5, 1998, New York, NY, USA, pages 295 - 306, XP002493865 * |
Also Published As
| Publication number | Publication date |
|---|---|
| US20080301364A1 (en) | 2008-12-04 |
| GB2462556B (en) | 2012-05-30 |
| GB0920954D0 (en) | 2010-01-13 |
| KR101503865B1 (ko) | 2015-03-24 |
| TWI457826B (zh) | 2014-10-21 |
| DE112008001473B4 (de) | 2021-08-26 |
| CN101707881A (zh) | 2010-05-12 |
| CN101707881B (zh) | 2016-06-15 |
| KR20100022483A (ko) | 2010-03-02 |
| US7734873B2 (en) | 2010-06-08 |
| TW200905555A (en) | 2009-02-01 |
| GB2462556A (en) | 2010-02-17 |
| JP2010529534A (ja) | 2010-08-26 |
| DE112008001473T5 (de) | 2010-07-01 |
| JP5496085B2 (ja) | 2014-05-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7734873B2 (en) | Caching of microcode emulation memory | |
| US10802987B2 (en) | Computer processor employing cache memory storing backless cache lines | |
| KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
| JP5528554B2 (ja) | ブロックベースの非透過的キャッシュ | |
| JP7359837B2 (ja) | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット | |
| US9472248B2 (en) | Method and apparatus for implementing a heterogeneous memory subsystem | |
| JP5650766B2 (ja) | Tlbサポート設計のiommu | |
| JP5580894B2 (ja) | Tlbプリフェッチング | |
| CN108139981B (zh) | 一种页表缓存tlb中表项的访问方法,及处理芯片 | |
| US9632776B2 (en) | Preload instruction control | |
| US20150205724A1 (en) | System and method of cache partitioning for processors with limited cached memory pools | |
| US20150234745A1 (en) | Data cache prefetch controller | |
| CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
| CN104169892A (zh) | 并发访问的组相联溢出缓存 | |
| US20180157601A1 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
| JPWO2010035425A1 (ja) | キャッシュメモリ、その制御方法及びメモリシステム | |
| WO2006132798A2 (en) | Microprocessor including a configurable translation lookaside buffer | |
| CN107771322B (zh) | 可编程集成电路中存储器资源的管理 | |
| US20190205261A1 (en) | Systems, methods, and apparatuses for patching pages | |
| US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
| US20140189192A1 (en) | Apparatus and method for a multiple page size translation lookaside buffer (tlb) | |
| WO2015041151A1 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
| CN112559389A (zh) | 存储控制装置、处理装置、计算机系统和存储控制方法 | |
| US20230102891A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
| JP7449694B2 (ja) | 変換索引バッファにおける構成可能なスキューアソシエイティビティ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 200880018278.4 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08767911 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2010510322 Country of ref document: JP |
|
| ENP | Entry into the national phase |
Ref document number: 0920954 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20080528 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 0920954.5 Country of ref document: GB |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1120080014736 Country of ref document: DE |
|
| ENP | Entry into the national phase |
Ref document number: 20097026820 Country of ref document: KR Kind code of ref document: A |
|
| RET | De translation (de og part 6b) |
Ref document number: 112008001473 Country of ref document: DE Date of ref document: 20100701 Kind code of ref document: P |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 08767911 Country of ref document: EP Kind code of ref document: A1 |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8607 |