WO2008024221A2 - Micro tag reducing cache power - Google Patents
Micro tag reducing cache power Download PDFInfo
- Publication number
- WO2008024221A2 WO2008024221A2 PCT/US2007/017896 US2007017896W WO2008024221A2 WO 2008024221 A2 WO2008024221 A2 WO 2008024221A2 US 2007017896 W US2007017896 W US 2007017896W WO 2008024221 A2 WO2008024221 A2 WO 2008024221A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data bits
- tag array
- stored
- micro tag
- pipeline register
- Prior art date
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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- 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/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates generally to processors and more particularly to reducing cache access power in a processor.
- a cache is a block of memory for temporary storage of data that can be accessed by a processor more quickly than main memory.
- the cache array is typically indexed by a subset of the address bits and tagged with the remaining address bits.
- each index in the cache can hold multiple memory locations. For example, a 4 way set-associative cache can hold 4 memory locations at each cache index.
- a typical set-associative cache has one or more arrays holding the tag values, referred to as the tagrams, and one or more arrays holding the data values, referred to as datarams. For fast access, it is common to implement each way of the data in a separate dataram.
- the tagrams and the datarams of a cache of a conventional processor are energized and accessed in parallel during each memory read and each memory write operation. Following each operation (e.g., in which a cache hit occurs), a selection process chooses the contents of one of the datarams of the cache and supplies this contents to the processor. The contents of the remaining datarams are disregarded.
- the present invention provides processors and systems having a micro tag array that reduces data cache access power.
- the processors and systems include a cache that has a plurality of datarams, a processor pipeline register, and a micro tag array.
- the micro tag array is coupled to the cache and the processor pipeline register.
- the micro tag array stores base address data bits or base register data bits, offset data bits, a carry bit, and way selection data bits.
- LOAD or a STORE instruction is fetched, at least a portion of the base address and at least a portion of the offset of the instruction are compared to data stored in the micro tag array. If a micro tag array hit occurs, the micro tag array generates a cache dataram enable signal. This signal enables only a single dataram of the cache. If a micro tag array hit occurs, a signal is also generated that disables the cache tagram.
- [0006J It is a feature of the present invention that it uses early stages of a processing pipeline to derive usable cache way selection information. This information, which is based on previous way selection information, is used to determine which dataram of a cache stores needed data and to actively conserve power by enabling only the dataram containing the needed data.
- FIG. 1 is a diagram of a processor according to an embodiment of the present invention.
- FIG. 2 is a diagram of a processor having a micro tag array according to a first embodiment of the present invention.
- FIG. 3 is a diagram of a processor having a micro tag array according to a second embodiment of the present invention.
- FIG. 4 is a diagram of a processor having a micro tag array according to a third embodiment of the present invention.
- FIG. 5 is a diagram of a processor having a micro tag array according to a fourth embodiment of the present invention.
- FIG. 6 is a diagram of an example system embodiment of the present invention. [0015] The present invention is described with reference to the accompanying drawings. The drawing in which an element first appears is typically indicated by the leftmost digit or digits in the corresponding reference number.
- the present invention provides processors and systems having a micro tag array that reduces data cache access power, and applications thereof.
- references to "one embodiment”, “an embodiment”, “an example embodiment”, etc. indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
- FIG. 1 is a diagram of a processor 100 according to an embodiment of the present invention.
- processor 100 includes an execution unit 102, a fetch unit 104, a floating point unit 106, a load/store unit 108, a memory management unit (MMU) 110, an instruction cache 112, a data cache 114, a bus interface unit 116, a power management unit 118, a multiply/divide unit (MDU) 120, and a coprocessor 122.
- MMU memory management unit
- MMU memory management unit
- instruction cache 112 a data cache 114
- bus interface unit 116 a bus interface unit 116
- power management unit 118 a multiply/divide unit 120
- coprocessor 122 While processor 100 is described herein as including several separate components, many of these components are optional components that will not be present in each embodiment of the present invention, or components that may be combined, for example, so that the functionality of two components reside within a single component.
- the individual components shown in FIG. 1 are illustrative and not
- Execution unit 102 preferably implements a load-store (RISC) architecture with arithmetic logic unit operations (e.g., logical, shift, add, subtract, etc.).
- execution unit 102 includes 32-bit general purpose registers (not shown) used for scalar integer operations and address calculations.
- one or more additional register file sets can be included to minimize content switching overhead, for example, during interrupt and/or exception processing.
- Execution unit 102 interfaces with fetch unit 104, floating point unit 106, load/store unit 108, multiple-divide unit 120 and coprocessor 122.
- Fetch unit 104 is responsible for providing instructions to execution unit 102.
- fetch unit 104 includes control logic for instruction cache 112, a recorder for recoding compressed format instructions, dynamic branch prediction, an instruction buffer to decouple operation of fetch unit 104 from execution unit 102, and an interface to a scratch pad (not shown).
- Fetch unit 104 interfaces with execution unit 102, memory management unit 110, instruction cache 112, and bus interface unit 116.
- Floating point unit 106 interfaces with execution unit 102 and operates on non-integer data. As many applications do not require the functionality of a floating point unit, this component of processor 100 will not be present in all embodiments of the present invention.
- Load/store unit 108 is responsible for data loads and stores, and includes data cache control logic. Load/store unit 108 interfaces with data cache 114 and other memory such as, for example, a scratch pad and/or a fill buffer. Load/store unit 108 also interfaces with memory management unit 110 and bus interface unit 116.
- Memory management unit 110 translates virtual addresses to physical addresses for memory access.
- memory management unit 110 includes a translation lookaside buffer (TLB) and may include a separate instruction TLB and a separate data TLB.
- TLB translation lookaside buffer
- Memory management unit 110 interfaces with fetch unit 104 and load/store unit 108.
- Instruction cache 112 is an on-chip memory array organized as a multi- way set associative cache such as, for example, a 2-way set associative cache or a 4-way set associative cache. Instruction cache 112 is preferably virtually indexed and physically tagged, thereby allowing v ⁇ rtual-to-physical address translations to occur in parallel with cache accesses. In one embodiment, the tags include a valid bit and optional parity bits in addition to physical address bits. Instruction cache 112 interfaces with fetch unit 104.
- Data cache 114 is also an on-chip memory array.
- Data cache 114 is preferably virtually indexed and physically tagged.
- the tags include a valid bit and optional parity bits in addition to physical address bits.
- components of data cache 114 can be selectively enabled and disabled to reduce the total power consumed by processor 100.
- Data cache 114 interfaces with load/store unit 108.
- Bus interface unit 116 controls external interface signals for processor
- bus interface unit 116 includes a collapsing write buffer used to merge write-through transactions and gather writes from uncached stores.
- Power management unit 118 provides a number of power management features, including low-power design features, active power management features, and power-down modes of operation.
- processor 100 implements a wait instruction that signals to selected components of processor 100 that execution and/or clocking should be halted, thereby reducing power consumption during the idle period.
- These power management features are in addition to the power saving features described herein with reference, for example, to FIGS. 2-5.
- Multiply/divide unit 120 performs multiply and divide operations for processor 100.
- multiply/divide unit 120 preferably includes a pipelined multiplier, result and accumulation registers, and multiply and divide state machines, as well as all the control logic required to perform, for example, multiply, multiply-add, and divide functions. As shown in FIG. 1, multiply/divide unit 120 interfaces with execution unit 102.
- Coprocessor 122 performs various overhead functions for processor
- coprocessor 122 is responsible for virtual-to-physical address translations, implementing cache protocols, exception handling, operating mode selection, and enabling/disabling interrupt functions. Coprocessor 122 interfaces with execution unit 102.
- FIG. 2 is a diagram of a processor having a micro tag array 210 according to an embodiment of the present invention.
- the processor includes a register file 202 and a processor pipeline register 204.
- micro tag array 210 includes registers 212, 214,
- Micro tag array 210 also includes comparators 220, 222, and 224, an adder 226, and control logic 228, 230, and 232. Micro tag array 210 is coupled to processor pipeline register 204.
- Register 212 is used to store way selection data bits.
- the stored way selection data bits identify a particular dataram of a cache such as data cache 114, shown in FIG. 1.
- the number of bits stored in register 212 is Bs.
- Bg is 4 bits with a 1-hot encoding indicating which of the 4 ways was used in a previous cache access.
- Register 214 is used to store base address data bits.
- the bits stored in register 214 are provided to register 214 by a base address portion 206 of pipeline processor register 204.
- the number of bits stored in register 212 is B ⁇ In one embodiment, B 4 is the upper twenty-seven bits of a thirty-two bit memory base address. In other embodiments, more than or less than twenty- seven bits may be stored.
- Register 216 is used to store offset data bits. The bits stored in register
- register 216 are provided to register 216 by an offset portion 208 of pipeline processor register 204.
- the number of bits stored in register 216 is B 6 .
- B 6 is the upper eleven bits of a sixteen bit memory offset. In other embodiments, more than or less than eleven bits may be stored.
- Register 218 is used to store a carry bit. The carry bit stored in register
- This array update signal is generated by control logic 234. Data is cleared from registers 212, 214, 216, and 218 (or marked as invalid) whenever an array invalidate signal is applied to these registers. This array invalidate signal is generated by control logic 236.
- Comparator 220 of micro tag array 210 is coupled to register 214 and base address portion 206 of processor pipeline register 204. Comparator 220 compares bits stored in base address portion 206 of processor pipeline register 204 to bits stored in register 214. If the two sets of bits match, comparator 220 generates a hit signal. Otherwise, comparator 220 generates a miss signal. The output signal of comparator 220 is provided to control logic 228.
- Comparator 222 of micro tag array 210 is coupled to register 216 and offset portion 208 of processor pipeline register 204. Comparator 222 compares bits stored in offset portion 208 of processor pipeline register 204 to bits stored in register 216. If the two sets of bits match, comparator 222 generates a hit signal. Otherwise, comparator 222 generates a miss signal. The output signal of comparator 222 is provided to control logic 228.
- Comparator 224 of micro tag array 210 is coupled to register 218 and adder 226. Comparator 224 compares the carry bit stored in register 218 to a carry bit generated by adder 226. If the two carry bits match, comparator 224 generates a hit signal. Otherwise, comparator 224 generates a miss signal. The output signal of comparator 224 is provided to control logic 228.
- Adder 226 adds bits Bs stored in base address portion 206 of processor pipeline register 204 to bits B 7 stored in offset portion 208 of processor pipeline register 204 and generates a carry bit. This carry bit is provided to comparator 224. The carry bit is also stored in register 218. In one embodiment, adder 226 adds the lower five bits of a memory base address stored in base address portion 206 of processor pipeline register 204 to the lower five bits of a memory offset stored in offset portion 208 of processor pipeline register 204. In other embodiments, more than or less than five bits may be added by adder 226.
- Control logic 228 generates a micro tag array entry hit signal if each of the comparators 220, 222, and 224 generate a hit signal. Otherwise, control logic 228 generates a miss signal. The output signal of control logic 228 is provided to control logic 230 and control logic 232.
- Control logic 230 is used to generate a dataram enable signal.
- the inputs to control logic 230 are the output signal of control logic 228, a LOAD/STORE ACCESS signal, and the way selection data bits stored in register 212.
- Control logic 232 is used to generate a tagram enable signal.
- the inputs to control logic 232 are the output signal of control logic 228 and a LOAD/STORE ACCESS signal.
- FIG. 3 is a diagram of a processor having a micro tag array 300 according to an embodiment of the present invention.
- Micro tag array 300 includes a plurality of array entries 302. In preferred embodiments of the present invention, micro tag array 300 includes from one to four array entries 302. The invention is not limited, however, to having between one and four array entries.
- micro tag array 300 is a multi-entry micro tag array that operates in a manner similar to micro tag array 210.
- the processors of FIGS. 2 and 3 operate as follows. An instruction 201 is fetched by the processor.
- instruction 201 is a LOAD or a STORE instruction having an opcode 203, a base register value 205, a destination (or source) register value 207, and an offset value 209.
- the base register value includes Bj bits that are used to transfer a base address value stored in register file 202 to base address portion 206 of processor pipeline register 204.
- the offset value 209 includes B 2 bits, which are stored in offset portion 208 of processor pipeline register 204.
- a subset of the bits stored in base address portion 206 of processor pipeline register 204 is compared using comparator 220 to bits stored in register 214. This comparison determines whether the base address of instruction 201 matches a base address stored in an array entry of the micro tag array.
- a subset of the bits stored in offset portion 208 of processor pipeline register 204 is compared using comparator 222 to bits stored in register 216. This comparison determines if there is a match of the offset value of instruction 201 to an offset value stored in an entry of the micro tag array.
- adder 226 adds bits Bs and B 7 of pipeline processor register 204 (e.g., the lower five bits of the base address value and the offset value of instruction 201) to generate a carry value. This carry value is then compared to a carry value stored in register 218.
- control logic 228 If each of the comparators 220, 222, and 224 associated with a particular entry of the micro tag array generates a hit signal, control logic 228 generates a hit signal, which causes control logic 230 to enable a single dataram specified by bits stored in register 212. This also disables the tagram.
- each of the registers 212, 214, 216, and 218 are set to zero at start-up of the processor.
- the first LOAD or STORE instruction executed by the processor will access the data cache without a micro tag array hit.
- the cache will be accessed in a conventional manner.
- the outcome of the cache tag comparison will yield way selection information that will be stored in register 212 of an array entry of the micro tag array.
- the base address value and the offset value of the instruction will also be stored in the array entry. This information will then be available for use with the next LOAD or STORE instruction executed by the processor.
- next LOAD or STORE instruction does not create a hit within the first entry of the micro tag array, another micro tag array entry is found and the access information is stored as described above. This fill process will continue until all available entries of the micro tag array are filled. In an embodiment, when this occurs, the first entry of the micro tag array is again declared eligible for data storage.
- a replacement scheme is commonly referred to as a least recently filled replacement scheme, and it is easily implemented using a shift register (e.g., a 1-hot N-bit shift register).
- Other replacement schemes such as, for example, a least recently used scheme are implemented in other embodiments of the present invention.
- control logic 236 invalidates all of the array entries of the micro tag array whenever a tagram write occurs.
- control logic 236 selectively invalidates only array entries of the micro tag array whose way selection data bits correspond to an intended refill way of the cache. This embodiment, improves the efficiency of the micro tag array.
- FIG. 4 is a diagram of a processor having a micro tag array 410 according to an embodiment of the present invention. As shown in FIG.
- micro tag array 410 includes registers 212, 414, 216, and 218. These four registers comprise an array entry of micro tag 410.
- Micro tag array 410 also includes comparators 414, 222, and 224, an adder 226, and control logic 228, 230, and 232.
- Micro tag array 410 is coupled to a processor pipeline register 402.
- Register 212 is used to store way selection data bits.
- the stored way selection data bits identify a particular dataram of a cache such as data cache 1 14, shown in FIG. 1.
- the number of bits stored in register 212 is Bs.
- Bg is 4 bits with a 1-hot encoding indicating which of the 4 ways was used in a previous cache access.
- Register 414 is used to store base register data bits.
- the bits stored in register 414 are provided to register 414 by the base register portion 404 of processor pipeline register 402.
- the number of bits stored in register 412 is B 4 .
- the number of bits stored in register 414 is equal to the number of bits contained in base register value 205 of instruction 201.
- a different number of bits may be stored in register 414, for example, if instruction 201 is a compressed format instruction and zeros are added to the bits Bi to make the base register value compatible with the base register values of normal format instructions.
- processor pipeline register 402 also stores base address bits B 9 in a based address portion 406 of processor pipeline register 402. These bits come from a register of register file 202, which is associated with base register value 205 of instruction 201. In one embodiment, the bits B 9 are the lower five bits of the memory base address value stored in register file 202.
- Register 216 is used to store offset data bits. The bits stored in register
- register 216 are provided to register 216 by an offset portion 408 of pipeline processor register 402.
- the number of bits stored in register 216 is B 6 .
- B ⁇ is the upper eleven bits of a sixteen bit memory offset. In other embodiments, more than or less than eleven bits may be stored.
- Register 218 is used to store a carry bit. The carry bit stored in register
- This array update signal is generated by control logic 234. Data is cleared from registers 212, 414, 216, and 218 (or marked as invalid) whenever an array invalidate signal is applied to these registers. This array invalidate signal is generated by control logic 236.
- Comparator 414 of micro tag array 410 is coupled to register 412 and base register portion 404 of processor pipeline register 402. Comparator 414 compares bits stored in base register portion 404 of processor pipeline register 402 to bits stored in register 412. If the two sets of bits match, comparator 414 generates a hit signal. Otherwise, comparator 414 generates a miss signal. The output signal of comparator 414 is provided to control logic 228.
- Comparator 222 of micro tag array 410 is coupled to register 216 and offset portion 408 of processor pipeline register 402. Comparator 222 compares bits stored in offset portion 408 of processor pipeline register 402 to bits stored in register 216. If the two sets of bits match, comparator 222 generates a hit signal. Otherwise, comparator 222 generates a miss signal. The output signal of comparator 222 is provided to control logic 228.
- Comparator 224 of micro tag array 410 is coupled to register 218 and adder 226. Comparator 224 compares the carry bit stored in register 218 to a carry bit generated by adder 226. If the two carry bits match, comparator 224 generates a hit signal. Otherwise, comparator 224 generates a miss signal. The output signal of comparator 224 is provided to control logic 228.
- Adder 226 adds bits B 9 stored in base address portion 406 of processor pipeline register 402 to bits B 7 stored in offset portion 408 of processor pipeline register 402 and generates a carry bit. This carry bit is provided to comparator 224. The carry bit is also stored in register 218. In one embodiment, adder 226 adds the lower five bits of a memory base address stored in base address portion 406 of processor pipeline register 402 to the lower five bits of a memory offset stored in offset portion 408 of processor pipeline register 402. In other embodiments, more than or less than five bits may be added by adder 226.
- Control logic 228 generates a micro tag array entry hit signal if each of the comparators 414, 222, and 224 generate a hit signal. Otherwise, control logic 228 generates a miss signal. The output signal of control logic 228 is provided to control logic 230 and control logic 232.
- Control logic 230 is used to generate a dataram enable signal.
- the inputs to control logic 230 are the output signal of control logic 228, a LOAD/STORE ACCESS signal, and the way selection data bits stored in register 212.
- Control logic 232 is used to generate a tagrani enable signal.
- the inputs to control logic 232 are the output signal of control logic 228 and a LOAD/STORE ACCESS signal.
- FIG. 5 is a diagram of a processor having a micro tag array 500 according to an embodiment of the present invention.
- Micro tag array 500 includes a plurality of array entries 502. In preferred embodiments of the present invention, micro tag array 500 includes from one to four array entries 502. The invention is not limited, however, to having between one and four array entries.
- Micro tag array 500 is a multi-entry micro tag array that operates in a manner similar to micro tag array 410.
- FIG. 6 is a diagram of an example system 600 according to an embodiment of the present invention.
- System 600 includes a processor 602, a memory 604, an input/output (I/O) controller 606, a clock 608, and custom hardware 610.
- system 600 is an application specific integrated circuit (ASIC) or a system on a chip (SOC).
- ASIC application specific integrated circuit
- SOC system on a chip
- Processor 602 is any processor that includes features of the present invention described herein and/or implements a method embodiment of the present invention.
- processor 602 includes an instruction fetch unit, an instruction cache, an instruction decode and dispatch unit, one or more instruction execution unit(s), a data cache, a register file, and a bus interface unit similar to processor 100 described above.
- Memory 604 can be any memory capable of storing instructions and/or data.
- Memory 604 can include, for example, random access memory and/or read-only memory.
- I/O controller 606 is used to enable components of system 600 to receive and/or send information to peripheral devices.
- I/O controller 606 can include, for example, an analog-to-digital converter and/or a digital-to-analog converter.
- Clock 608 is used to determine when sequential subsystems of system
- state registers of system 600 capture signals generated by combinatorial logic.
- the clock signal of clock 608 can be varied.
- the clock signal can also be divided, for example, before it is provided to selected components of system 600.
- Custom hardware 610 is any hardware added to system 600 to tailor system 600 to a specific application.
- Custom hardware 610 can include, for example, hardware needed to decode audio and/or video signals, accelerate graphics operations, and/or implement a smart sensor. Persons skilled in the relevant arts will understand how to implement custom hardware 610 to tailor system 600 to a specific application.
- implementations may also be embodied in software (e.g., computer readable code, program code, instructions and/or data disposed in any form, such as source, object or machine language) disposed, for example, in a computer usable (e.g., readable) medium configured to store the software.
- software e.g., computer readable code, program code, instructions and/or data disposed in any form, such as source, object or machine language
- a computer usable (e.g., readable) medium configured to store the software.
- Such software can enable, for example, the function, fabrication, modeling, simulation, description, and/or testing of the apparatus and methods described herein.
- this can be accomplished through the use of general programming languages (e.g., C, C++), GDS ⁇ databases, hardware description languages (HDL) including Verilog HDL, VHDL, SystemC Register Transfer Level (RTL) and so on, or other available programs, databases, and/or circuit (i.e., schematic) capture tools.
- HDL hardware description languages
- RTL SystemC Register Transfer Level
- Such software can be disposed in any known computer usable medium including semiconductor, magnetic disk, optical disk (e.g., CD-ROM, DVD-ROM, etc.) and as a computer data signal embodied in a computer usable (e.g., readable) transmission medium (e.g., carrier wave or any other medium including digital, optical, or analog-based medium).
- the software can be transmitted over communication networks including the Internet and intranets.
- the apparatus and method embodiments described herein may be included in a semiconductor intellectual property core, such as a microprocessor core (e.g., embodied in HDL) and transformed to hardware in the production of integrated circuits. Additionally, the apparatus and methods described herein may be embodied as a combination of hardware and software. Thus, the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalence.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007800369813A CN101523359B (en) | 2006-08-18 | 2007-08-15 | Processor having a micro tag array that reduces data cache access power, and applications thereof |
GB0903127A GB2456636B (en) | 2006-08-18 | 2007-08-15 | Processor having a micro tag array that reduces data cache access power and applications thereof |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/505,869 US7657708B2 (en) | 2006-08-18 | 2006-08-18 | Methods for reducing data cache access power in a processor using way selection bits |
US11/505,865 | 2006-08-18 | ||
US11/505,865 US7650465B2 (en) | 2006-08-18 | 2006-08-18 | Micro tag array having way selection bits for reducing data cache access power |
US11/505,869 | 2006-08-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2008024221A2 true WO2008024221A2 (en) | 2008-02-28 |
WO2008024221A3 WO2008024221A3 (en) | 2008-08-21 |
Family
ID=39107291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2007/017896 WO2008024221A2 (en) | 2006-08-18 | 2007-08-15 | Micro tag reducing cache power |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB2456636B (en) |
WO (1) | WO2008024221A2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374342B1 (en) * | 2000-01-31 | 2002-04-16 | Kabushiki Kaisha Toshiba | Translation lookaside buffer match detection using carry of lower side bit string of address addition |
US6988172B2 (en) * | 2002-04-29 | 2006-01-17 | Ip-First, Llc | Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
-
2007
- 2007-08-15 GB GB0903127A patent/GB2456636B/en not_active Expired - Fee Related
- 2007-08-15 WO PCT/US2007/017896 patent/WO2008024221A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB2456636B (en) | 2011-10-26 |
WO2008024221A3 (en) | 2008-08-21 |
GB2456636A8 (en) | 2009-07-22 |
GB0903127D0 (en) | 2009-04-08 |
GB2456636A (en) | 2009-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7657708B2 (en) | Methods for reducing data cache access power in a processor using way selection bits | |
US7899993B2 (en) | Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme | |
US7650465B2 (en) | Micro tag array having way selection bits for reducing data cache access power | |
US6161166A (en) | Instruction cache for multithreaded processor | |
US8392651B2 (en) | Data cache way prediction | |
US9575901B2 (en) | Programmable address-based write-through cache control | |
CN104272279B (en) | Data processing device with cache and conversion lookaside buffer | |
KR100260864B1 (en) | Apparatus and method for reducing power consumption of electronic circuits | |
US7925859B2 (en) | Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor | |
US8327121B2 (en) | Data cache receive flop bypass | |
US7117290B2 (en) | MicroTLB and micro tag for reducing power in a processor | |
US9244837B2 (en) | Zero cycle clock invalidate operation | |
EP3298493B1 (en) | Method and apparatus for cache tag compression | |
KR100261639B1 (en) | System and Method for Reducing Power Consumption in an Electronic Circuit | |
US9965395B2 (en) | Memory attribute sharing between differing cache levels of multilevel cache | |
JP5513744B2 (en) | Dynamic auto-damping device architecture | |
US8977821B2 (en) | Parallel processing of multiple block coherence operations | |
US20120290780A1 (en) | Multithreaded Operation of A Microprocessor Cache | |
CN117421259A (en) | Servicing CPU demand requests with in-flight prefetching | |
US5737749A (en) | Method and system for dynamically sharing cache capacity in a microprocessor | |
US6877069B2 (en) | History-based carry predictor for data cache address generation | |
US7076635B1 (en) | Method and apparatus for reducing instruction TLB accesses | |
WO2008024221A2 (en) | Micro tag reducing cache power | |
WO2007008387A1 (en) | Address generation unit with operand recycling | |
KR100260865B1 (en) | System & method for reducing power consumption in an electronic circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200780036981.3 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07811289 Country of ref document: EP Kind code of ref document: A2 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 596/KOLNP/2009 Country of ref document: IN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 0903127 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20070815 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 0903127.9 Country of ref document: GB |
|
NENP | Non-entry into the national phase |
Ref country code: RU |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 07811289 Country of ref document: EP Kind code of ref document: A2 |