WO2008053053A1 - Reducción del efecto de envejecimiento en los registros - Google Patents
Reducción del efecto de envejecimiento en los registros Download PDFInfo
- Publication number
- WO2008053053A1 WO2008053053A1 PCT/ES2006/070168 ES2006070168W WO2008053053A1 WO 2008053053 A1 WO2008053053 A1 WO 2008053053A1 ES 2006070168 W ES2006070168 W ES 2006070168W WO 2008053053 A1 WO2008053053 A1 WO 2008053053A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- register
- processor
- storage unit
- inverted
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
Definitions
- an embodiment of the invention relates to the reduction of the effect of aging in the registers of a processor.
- P-MOS metal oxide semiconductor transistors
- NBIT negative distortion temperature
- Designs may include margins to reduce the impact of such degradations, but additional design margins may reduce performance and / or increase e! area required to provide memory devices.
- Figs. 1, 6 and 7 illustrate block diagrams of embodiments of computer systems, which can be used to carry out the various embodiments discussed herein.
- Fig. 2 illustrates a block diagram of parts of a processor core, according to an embodiment of the invention.
- Fig. 3 illustrates a block diagram of parts of a log file and other components of a processor core, according to an embodiment of the invention.
- Figs. 4 and 5 illustrate the flow diagrams of method embodiments, according to some embodiments of the invention.
- Some of the embodiments discussed herein may provide efficient mechanisms to reduce the effect of aging on storage units such as records (for example, due to NBTI and / or rust degradation.
- such effects by storing a selected value in the storage units after the storage units have been released.
- the use of the term "released” here with reference to a storage unit (such as a register), may also be interchangeable with the terms "not used” or "not occupied.”
- the selected value can be updated so as to cause the switching of the voltage distortion in the gates of the transistors of a bit cell (for example, the bit cell can be performed as transversely coupled inverters in one embodiment) that are used in storage devices (such as a register) over a long period of time.
- some embodiments may allow all or part of the bit cells of a register used in a processor to consume about 50% of the operating time of the corresponding processor execution unit in a negatively distorted state and the rest of the time (for example, about 50%) in a positively distorted state.
- FIG. 1 illustrates a block diagram of a computer system 100, according to an embodiment of the invention.
- System 100 may include one or more processors 102-1 to 102-N (which are generally referred to herein as "processors 102" or “processor 102").
- the processors 102 can communicate through an interconnection or a main conductor 104.
- Each processor can include several components, some of which are only treated with reference to the processor 102-1, for the sake of clarity. Accordingly, each of the remaining processors 102-2 to 102-N may include the same or similar components treated with reference to processor 102-1.
- processor 102-1 may include one or more processor cores 106-1 to 106-M (referred to herein as “cores 106", or more generally as “core 106"), a memory cache 108 (which may be a shared cache or a private cache in various embodiments), and / or a router 110.
- the processor cores 106 may be made in a single integrated circuit chip (IC).
- ef chip may include one or more shared and / or private cache memories (such as cache memory 108), main conductors or interconnections (such as a main conductor or an interconnection 112), memory controllers, or other components.
- router 110 may be used to communicate between the various components of processor 102-1 and / or system 100.
- processor 102-1 may include more than one router 110. Additionally, the multitude of routers may be in communication to allow routing the data between the various components within the 102-1 processor.
- Cache 108 can store data (for example, including instructions) that are used by one or more components of processor 102-1, such as cores 106.
- cache 108 can cache stored data locally in a memory 114 for faster access by processor components 102-1.
- memory 114 may be in combination with processors 102 and / or numbers 106 by means of interconnections 104 and 1 12.
- cache memory 108 (which may be shared, may have various levels, for example, the cache 108 may be an intermediate level cache and / or a last level cache (LLC).
- each of the cores 106 may include a cache (116-1) of level! 1 (L1), which is generally referred to here as "L1 cache 116").
- L1 cache 116 level! 1
- Various components of the processor 102-1 can communicate with cache 108 directly, through a main conductor! (for example the main conductor 112) and / or a memory controller or central node.
- Fig. 2 illustrates a block diagram of parts of a core 106, according to an embodiment of the invention.
- the arrows shown in! A Fig. 2 illustrate the direction of! instruction flow through the core 106.
- One or more processor cores can be arranged in a single integrated circuit chip (or chip) as discussed with reference to Fig. 1.
- the chip can include one or more shared and / or private cache memories (for example, cache memory 108 of Fig. 1), interconnections (for example interconnections 104 and / or 112 of Fig. 1), controllers of memory, or other components. As illustrated in Fig.
- the processor core 106 can include a search and load unit 202 to search and load the instructions for execution by the core 106.
- the instructions can be searched and loaded from any storage device such as The memory 114 and / or the memory devices treated when referring to Figs. 6 and 7.
- the core 106 may also include a decoding unit 204 to decode the searched and loaded instruction.
- the decoding unit 204 can decode the instruction sought and loaded in a plurality of uops (microoperations).
- core 106 may include a programming unit 206.
- the programming unit 206 can perform various operations associated with! storing the decoded instructions (for example, received from the decoding unit 204) until the instructions are ready for dispatch, for example, until all the source values of a decoded instruction are available.
- the programming unit 206 may program and / or issue (generically referred to herein as "dispatch") decoded instructions to various components of the core 106 of processor for execution, such as an execution unit 208.
- the execution unit 208 can execute the instructions dispatched after they have been decoded (for example, by the decoding unit 204) and dispatched (for example, by the programming unit 206).
- the execution unit 208 may include more than one execution unit, such as a memory execution unit, an integer execution unit, a floating point execution unit, or other execution units.
- the execution unit 208 may also carry out various arithmetic operations such as addition, subtraction, multiplication and / or division, and may include one or more units of arithmetic logic (ALU).
- a coprocessor (not shown) can perform various arithmetic operations in conjunction with the execution unit 208.
- the execution unit 208 can execute disordered instructions. Therefore, in one embodiment the processor core 106 may be a messy processor core. AND! core 106 may also include a withdrawal unit 210. The withdrawal unit 210 can withdraw the instructions executed after they have been compromised. In one embodiment, the withdrawal of the executed instructions may lead to the compromise of the state of the processor since the execution of the instructions, the physical records used by the instructions being misallocated or released.
- the core 106 may additionally include a buffer recorder (ROB) 212 for storing information about the flight instructions (or uops) for access by various components of the processor core 106.
- ROB buffer recorder
- entries within ROB 212 may correspond (for example, period) to records of a record file 221 (including, for example, records 222A to -222Pf which can be collectively referred to herein as "records 222 "or more generally as” record 222 ").
- the entrances of ROB 212 can store information about the records 222 that are accessed by the instructions in flight (or uops) and in the commitment or withdrawal of an instruction (for example, by the withdrawal unit 210), a record identified in ROB 212 can be released.
- each bit cell of registers 222 may include at least two transistors to store a bit of data.
- each bit cell of registers 222 may include a plurality of metal oxide (P-MOS) channel-semiconductor transistors and / or of semiconductor channel-n metal oxide (N-MOS) that are coupled (for example, to form two transversely coupled inverters).
- records 222 can be made using random access static memory devices (SRAM). NAND gates can also be used to make the bit cells of the 222 registers.
- the core 106 may include an inversion logic 226 to cause the storage of a selected value in a storage unit (for example, of the type of registers 222) after an indication that the storage unit is going to be released (for example, by reference to the corresponding input of ROB 212 or to a signal generated by ROB 212, for example).
- the selected value whose storage has been caused by the logical element 226 (which can be referred to herein as an "investment value”) can be stored in a storage unit 228 (which can be a record in one embodiment ).
- the investment value can be stored as a variable in a shared storage unit such as cache 116 L1 and / or memory 114.
- the investment value 228 may include more than one value, comprising, for example, a floating point value and / or an integer value.
- the core 106 can also include a logical investment update element 230 to update the investment value stored in the unit 228.
- the logical element 230 can select or calculate the investment value from various sources, the values of this type being written in one of records 222 (or written the inverted versions of the values in one of the records 222 in one embodiment). Also, in one embodiment, the logic element 230 may update the investment value 228 on a periodic basis.
- the core ⁇ 06 could also include a driver-main unit 240 to • allow communication between the components of the processor core 106 and other components (such as the components treated with reference to Fig.
- Fig. 3 illustrates a block diagram of parts of a registration file 300 and other components of a processor core, according to an embodiment of the invention.
- the log file 300 may be the same as the log file 221 treated in reference to Fig. 2 or the like.
- the log file 300 may include one or more record (s) 302 (which may be the same or similar to the records 222 of Fig. 2).
- each of the records 302 may have a corresponding inverted period field 304 (to indicate, for example, for how long it has stored or maintained an invested value and the corresponding record) and a non-inverted period field 306 (to indicate, for example, how long the corresponding record has been stored or maintained for a non-inverted value).
- both fields 304 and 306 can be represented by a single field (for example, executed in one embodiment as a counter).
- a single counter can be increased (for example, by the logical element 308) according to the length of the inverted periods and decreased (for example, by the logical element 308) according to the length of the non-inverted periods . This approach can reduce the need for relatively large meters.
- the record file 300 may include fields 304 and / or 306 only for one or more of the records 302.
- a timer logic element 308 may update the values stored in fields 304 and / or 306, as it will deal further here, for example, with reference to Fig. 5.
- logic 308 can update the values stored in fields 304 and / or 306 using timestamps) which, for example, can be stored in record file 300 for each corresponding record 302).
- the timestamps can be recorded each time a corresponding record starts or interrupts the storage of an inverted or non-inverted value, as will be treated more extensively by referring to Fig. 5.
- the timestamps can be generated by one or more records 302 (for example, a single record).
- the record for which timestamps are generated can be a fixed record or a record chosen by random selection, balanced paired comparison, etc.
- the registration file 300 can communicate with one or more of the logical devices 226 and / or 308 to update the values stored in the register (s) 302, and the ) field (s) 304 and / or field (s) 306.
- the investment value 228 can be updated by logic element 230 and!
- Logic element 226 may store the investment value 228 in one or more of the records 302 after the records are released.
- Fig. 4 illustrates a flow chart of an embodiment of a method 400 for storing a selected value in a storage unit, according to an embodiment of the invention.
- method 400 may be used to store the data in one or more of the records 222 of Fig. 2 and / or of records 302 of Fig. 3.
- an operation 402 it can be determined if a storage unit (for example, such as one of records 222 and / or 302) is not going to be used.
- operation 402 can be performed by referring to a corresponding input of ROB 212, as discussed with reference to Fig. 2. Method 400 continues with operation 402 until it is detected that a storage unit does not It will be used.
- an operation 404 it is determined if a port is available to write the data to a storage unit (for example, if a write port is available to write the data in one of the records 222 and / or 302). If a write port is available in operation 404, a selected value can be stored in the storage unit (for example, the investment value 228 can be stored in one of the registers 222 and / or 302 by the logic element 226).
- Fig. 5 illustrates a flow chart of an embodiment of a method 500 for updating one or more fields and storing a selected value in a storage unit, according to an embodiment of the invention.
- several treated components can be used with reference to Figs. 1-3 and 6-7 to perform one or more of the operations treated with reference to Fig. 5.
- method 500 can be used to update the values stored in fields 304 and / or 306 and / or to storing the data in one or more of the records 222 of Fig. 2 and / or in records 302 of Fig. 3.
- an operation 502 it can be determined whether the storage unit treated by referring to operation 402 has stored or maintained an invested value for a shorter period than an uninvested value.
- the operation 502 can be performed by the logical element 308 referring to the fields 304 and / or 306 corresponding to the register 302 treated by referring to the operation 402. (for example, which will be released).
- method 500 can be continued with Ia operation 406.
- method 500 (in an operation 504) can update the stored value (s) ⁇ of the corresponding timer fields, for example, to indicate that the corresponding storage unit It is storing the 228 investment value.
- fields 304 and / or 306 may include several other fields to store a time stamp corresponding to the moment at which an inverted value and / or a non-inverted value is stored and subsequently replaced by a different value to allow that the logical device 308 determines the period of time during which one or more of the records 302 stores the corresponding values.
- method 500 can be resumed with operation 402.
- Fig. 6 illustrates a block diagram of a computer system 600 according to an embodiment of the invention.
- the corresponding computer system 600 may include one or several central processing units (CPU) 602 or processors that communicate through an interconnection network (or main conductor) 604.
- the processors 602 may include a general purpose processor, a processor network (which processes the data communicated on a computer network 603), or other types of processor (including a reduced instruction set computer processor (RISC) or a complex instruction set computer (CISC).
- processors 602 can have a single or multiple core design.
- processors 602 with a multi-core design can integrate different types of processor core into the same integrated circuit (IC) chip.
- 602 processors can be made with design of multiple core as symmetric or asymmetric multiprocessors
- one or more of the processors 602 may be the same or similar to the processors -102 of Fig. i:
- one or more of the processors 602 may include one or more of the cores 106 treated with reference to Fig. 1.
- the operations treated can be performed by doing reference to Figs. 1-5 for one or more of the components of! system 600.
- a chipset 606 can also communicate with the interconnection network 604.
- the chipset 606 may include a central memory control node (MCH) 608.
- the MCH 608 may include a memory controller 610 which The memory 1 14 is communicated with the memory 1 14.
- memory 114 can include one or several volatile storage devices (or memory) such as random access memory (RAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or other types of storage devices.
- RAM random access memory
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- SRAM static RAM
- Nonvolatile memory can also be used as a hard disk.
- Other devices can communicate through the interconnected network 604, such as multiple CPUs and / or multiple system memories.
- the MCH 608 can include a graphic interface 614 that communicates with a presentation device 616.
- the graphic interface 614 can communicate with the presentation device 616 through an accelerated graphics port (AGP).
- the presentation device 616 (such as a flat screen presentation) can communicate with the graphic interface 614 through, for example, a signal converter that transfers a digital representation of an image stored in a storage device such as a video memory or system memory in presentation signals that are presented in the presentation device 616.
- the presentation signals produced by the presentation device may pass through various control devices before being interpreted. by the presentation device 616 and subsequently presented therein.
- a central node interface 618 may allow the MCH 608 to communicate with a central input / output control (ICH) 620 node.
- the ICH 620 can provide an interface to the communicating device (s) that communicate with the computer system 600.
- the ICH 620 can communicate with a main conductor 622 through a peripheral bridge (or controller 624), such as a peripheral component interconnect bridge (PCI), a universal main conductor controller in series (USB), or other types of bridges or peripheral controllers.
- the bridge 624 can provide a data path between the CPU 602 and the peripheral devices. Other types of topologies can be used.
- multiple main conductors can communicate with the ICH 620, for example, through multiple bridges or controllers.
- peripherals in communication with the ICH 620 may include, in various embodiments of the invention, integrated drive electronics (IDE) or interface hard disk (s) of small computer systems (SCSI), USB ports, a keyboard, mouse, parallel port (s), serial port (s), external disk drives, digital output media (for example, digital video interface (DVI), or other devices).
- IDE integrated drive electronics
- SCSI small computer systems
- USB ports a keyboard, mouse, parallel port (s), serial port (s), external disk drives, digital output media (for example, digital video interface (DVI), or other devices).
- the main conductor 622 can communicate with an audio device 626, one or more disk drives 628, and a network interface device 630 (which is in communication with the computer network 603). Other devices can communicate through! main conductor 622.
- various components (such as the network interface device 630) can communicate with MCH 608 in some embodiments of the invention.
- ef processor 602 and MCH 608 can be combined to form a single chip.
- a graphic accelerator can be included within the MCH 608 and other embodiments of the invention.
- the computer system 600 may include a volatile and / or non-volatile memory (or storage unit).
- non-volatile memory may include one or more of the following devices: a read-only memory (ROM), a programmable ROM (PROM), a erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a unit disk (for example, 628), an external disk, a compact disk ROM (CD-ROM), a digital versatile disk (DVD), a flash memory, a magneto-optical disk, or other types of non-volatile machine-readable media that are capable of storing electronic data (for example including instructions).
- ROM read-only memory
- PROM programmable ROM
- EPROM erasable PROM
- EEPROM electrically erasable PROM
- unit disk for example, 628
- an external disk for example, a compact disk ROM (CD-ROM), a digital versatile disk (DVD)
- flash memory for example including magnetic tape
- magneto-optical disk or other types of non-volatile machine-readable media that are capable of storing electronic data (for
- Fig. 7 illustrates a computer system 700 that is placed in a point-to-point configuration (PtP), according to an embodiment of the invention.
- Fig. 7 shows a system in e! that the processors, the memory, and the input / output devices are interconnected by a number of point-to-point interfaces.
- the treated operations can be carried out with reference to Figs. 1-6 by one or several components of the system 700.
- the system 700 can "include various" processors, two of which (processors 702 and 704) are shown for the sake of clarity .
- Processors 702 and 704 can each include a central node of local memory controller (MCH) 706 and 708 to allow communication with memories 710 and 712.
- MCH local memory controller
- Memories 710 and / or 712 can store various data such as those treated by doing reference to memory 1 14 of Figs. 1, 2 and 6.
- the processors 702 and 704 can be one of the processors 602 treated with reference to Fig. 6.
- the processors 702 and 704 can exchange the data through a point-to-point interface (PtP) 714 using circuits 716 and 718 PtP interface respectively.
- processors 702 and 704 can exchange data with a chipset 720 to through the individual PtP interfaces 722 and 724 using the 726, 728, 730 and 732 point-to-point interface circuits.
- Chipset 720 can additionally exchange data with a graphics circuit 734 through a graphical interface 736, using a PtP interface circuit 737.
- At least one embodiment of the invention can be arranged within processors 702 and 704.
- one or more of the cores 106 of Figs. 1 may be located within processors 702 and 704. However, there may be other embodiments of the invention in other circuits, logic units, or devices within the system 700 of Fig. 7. In addition, other embodiments of the invention may be distributed through various circuits, logic units, or devices illustrated in Fig. 7.
- Chipset 720 can communicate with a main conductor 740 using a 741 PtP interface circuit.
- the main driver 740 can communicate with one or more devices, such as a main driver bridge 742 and the I / O devices 743.
- the main driver bridge 742 can communicate with other devices such as a keyboard / mouse 745, the communication devices 746 (such as modems, network interface devices, or other communication devices that can enter into communication with the computer network 603), the audio I / O device 747, and / or a 748 data storage device.
- the data storage device 748 can store the code 749 that can be executed by the 702 and / or 704 processors.
- Figs 1-7 the operations discussed herein in relation to Figs 1-7 can be carried out as hardware (for example, logic circuitry), software, - microprograms, or a combination of the same, which may be arranged as a computer programming product, for example, including a readable medium for the machine or readable for the computer that has stored in it the instructions (or software procedures) used to program a computer or perform a process discussed here.
- a computer programming product for example, including a readable medium for the machine or readable for the computer that has stored in it the instructions (or software procedures) used to program a computer or perform a process discussed here.
- Machine-readable medium may include a storage device such as those treated with reference to Figs. 1-7.
- computer readable media of this type can be downloaded as a computer program product, the program of which can be transferred from a remote computer (for example, a server) to a requesting computer (for example, a client) by means of data signals entered into a carrier wave or in a propagation medium through a telecommunications link (for example, a main conductor, a modem, or a network connection). Therefore, here it will be considered that a carrier wave comprises a readable medium for the machine.
- a remote computer for example, a server
- a requesting computer for example, a client
- a carrier wave comprises a readable medium for the machine.
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
Se describen unos métodos y un aparato para reducir el efecto del envejecimiento en los registros. En una realización, se almacena un valor seleccionado en un registro que no es usado, por ejemplo, para reducir los efectos de la inestabilidad de temperatura de distorsión negativa (NBTI) o de la degradación del óxido en el registro. Se describen también otras realizaciones.
Description
REDUCCIÓN DEL EFECTO DE ENVEJECIMIENTO EN LOS REGISTROS ANTECEDENTES
La presente descripción se refiere generalmente a! campo de la electrónica. Más en particular, una realización de Ia invención se refiere a Ia reducción del efecto del envejecimiento en ios registros de un procesador.
Conforme avanza Ia tecnología de Ia fabricación de circuitos, los fabricantes de semiconductores son capaces de integrar una funcionalidad adicional en un único substrato de silicio. Conforme aumenta el número de estas funcionalidades, sin embargo, así Io hace el número de componentes de un único chip. Los componentes adicionales pueden aumentar Ia conmutación de seña!, a su vez, generando más calor. El calor adicional puede dañar diversos componentes de un chip. Por ejemplo, los dispositivos de memoria que utilizan transistores de semiconductor de canal-p (positivo) óxido metálico (P-MOS) pueden ser afectados por el calor adicional cuando los transistores son distorsionados negativamente a Io largo de! tiempo, por ejemplo debido a la inestabilidad de temperatura de distorsión negativa (NBIT). La degradación del óxido puede dañar también a los transistores a Io largo del tiempo.
Conforme se degradan los dispositivos de memoria, su estabilidad de lectura o escritura puede sufrir, por ejemplo, debido a un desplazamiento en su tensión umbral de compuerta. Los diseños pueden incluir márgenes para reducir el impacto de tales degradaciones, pero los márgenes adicionales de diseño pueden reducir las prestaciones y/o aumentar e! área requerida para proporcionar los dispositivos de memoria.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Se proporciona Ia descripción detallada haciendo referencia a las figuras que se adjuntan. En las figuras, el(los) dígito(s) más a Ia izquierda de un número de referencia ídentifica(n) Ia figura en Ia cual aparece el número de referencia por primera vez. El uso de los mismos números de referencia en distintas figuras indica elementos similares o idénticos.
Las Figs. 1 , 6 y 7 ilustran diagramas de bloque de realizaciones de sistemas informáticos, los cuales pueden ser utilizados para llevar a cabo las diversas realizaciones que se tratan aquí.
La Fig, 2 ilustra un diagrama de bloques de partes de un núcleo de procesador,
según una realización de Ia invención.
La Fig. 3 ilustra un diagrama de bloques de partes de un archivo de registro y otros componentes de un núcleo de procesador, según una realización de Ia invención. Las Figs. 4 y 5 ilustran los diagramas de flujo de realizaciones de métodos, según algunas realizaciones de ía invención.
DESCRIPCIÓN DETALLADA
En Ia descripción siguiente, se establecen numerosos detalles específicos a fin de proporcionar un entendimiento completo de las diversas realizaciones. Sin embargo, se pueden llevar a Ia práctica diversas realizaciones de Ia invención sin los detalles específicos. En otros casos, no se ha descrito en detalle métodos, componentes y circuitos bien conocidos para no oscurecer las realizaciones concretas de la invención. Además, se pueden realizar diversos aspectos de Ia invención usando diversos mecanismos, tales como circuitos de semiconductor integrados ("hardware"), instrucciones legibles por ordenador organizadas en uno o varios programas ("software"), o alguna combinación de hardware y software. Para ios fines de esta descripción, ia referencia a "lógico/a" se referirá a hardware, software, o cualquier combinación de los mismos. También el uso de "instrucción" o microoperación" (a las cuales se puede hacer referencia como "uop") puede ser aquí intercambiable.
Alguna de !as realizaciones aquí tratadas pueden proporcionar mecanismos eficientes para reducir el efecto del envejecimiento en las unidades de almacenamiento tales como los registros (por ejemplo, debido a ia NBTI y/o a Ia degradación del óxido. En una realización, se puede reducir tales efectos almacenando un valor seleccionado en las unidades de almacenamiento después de que se hayan liberado las unidades de almacenamiento. El uso del término "liberado" aquí con referencia a una unidad de almacenamiento (tal como un registro), puede ser también intercambiable con los términos "no utilizado" o "no ocupado". El valor seleccionado puede ser actualizado de manera que cause Ia conmutación de Ia distorsión de tensión en las compuertas de ios transistores de una célula de bit (por ejemplo, se puede realizar Ia célula de bit como inversores acoplados transversalmente en una realización) que se utilizan en los dispositivos de almacenamiento (tales como un registro) a Io largo del tiempo, por ejemplo, equilibrando el valor del tiempo en que un transistor es distorsionado positivamente con el distorsionado negativamente. Tal conmutación periódica puede reducir los
efectos de Ia NBTl y/o de ía degradación del óxido en los registros utilizados en un procesador, de! tipo de ios procesadores tratados al hacer referencia a las Figs. 1-7. Por ejemplo, algunas realizaciones pueden permitir que todas o parte de las células de bit de un registro utilizadas en un procesador consuman cerca def 50% del tiempo de funcionamiento de Ia unidad correspondiente de ejecución de procesador en un estado negativamente distorsionado y el resto del tiempo (por ejemplo, cerca del 50%) en un estado distorsionado positivamente.
Más particularmente, Ia Fig. 1 ilustra un diagrama de bloques de un sistema informático 100, según una realización de Ia invención. El sistema 100 puede incluir uno o varios procesadores 102-1 a 102-N (a ios que se hace referencia generalmente aquí cono "procesadores 102" o "procesador 102"). Los procesadores 102 pueden comunicarse a través de una interconexión o un conductor principal 104. Cada procesador puede incluir varios componentes, algunos de ¡os cuales sólo se tratan haciendo referencia al procesador 102-1 , en aras de Ia claridad. Por consiguiente, cada uno de ¡os restantes procesadores 102-2 a 102-N puede incluir los mismos componentes o similares tratados con referencia al procesador 102-1.
En una realización, el procesador 102-1 puede incluir uno o varios núcleos 106- 1 a 106-M de procesador (a los que aquí se hace referencia cono "núcleos 106", o más generalmente como "núcleo 106"), una memoria caché 108 (la cual puede ser una memoria caché compartida o una memoria caché privada en diversas realizaciones), y/o un enrutador 110. Los núcleos de procesador 106 pueden ser realizados en un chip de circuito integrado único (IC). Además, ef chip puede incluir una o varias memorias caché compartidas y/o privadas (como la memoria caché 108), conductores principales o interconexiones (tales como un conductor principal o una interconexión 112), controladores de memoria, u otros componentes.
En una realización, se puede usar el enrutador 110 para comunicar entre los diversos componentes del procesador 102-1 y/o sistema 100. Además, el procesador 102-1 puede incluir más de un enrutador 110. Adicionalmente, la multitud de enrutadores puede estar en comunicación para permitir encaminar los datos entre los diversos componentes dentro del procesador 102-1.
La memoria caché 108 puede almacenar datos (por ejemplo, incluyendo instrucciones) que son utilizados por uno o varios componentes del procesador 102-1 , tales como los núcleos 106. Por ejemplo, la memoria caché 108 puede guardar localmente en memoria caché los datos almacenados en una memoria 114 para un acceso más rápido por los componentes del procesador 102-1. Como se muestra en Ia
Fig. 1, Ia memoria 114 puede estar en combinación con los procesadores 102 y/o los núcieos 106 por medio de las interconexiones 104 y 1 12. En una realización, ia memoria caché 108 (que puede ser compartida, puede tener diversos niveles, por ejemplo, ia memoria caché 108 puede ser una memoria caché de nivel intermedio y/o una memoria caché de último nivel (LLC). También, cada uno de los núcleos 106 puede incluir una memoria caché (116-1) de nive! 1 (L1), a la que generalmente se hace referencia aquí como "memoria caché 116 de L1 "). Diversos componentes del procesador 102-1 pueden comunicarse con Ia memoria caché 108 directamente, a través de un conductor principa! (por ejemplo el conductor principal 112) y/o un controiador de memoria o nodo central.
La Fig. 2 ilustra un diagrama de bloques de partes de un núcleo 106, según una realización de Ia invención. En una realización, las flechas mostradas en !a Fig. 2 ilustran la dirección de! flujo de instrucciones a través del núcleo 106. Se puede disponer uno o varios núcleos de procesador (tales como el núcleo 106 de procesador) en un único chip de circuito integrado (o pastilla) tal como se trató haciendo referencia a Ia Fig. 1. Además, el chip puede incluir una o varias memorias caché compartidas y/o privadas (por ejemplo, Ia memoria caché 108 de Ia Fig. 1), interconexiones (por ejemplo las interconexiones 104 y/o 112 de Ia Fig. 1), controladores de memoria, u otros componentes. Como se ilustra en Ia Fig. 2, el núcleo 106 de procesador puede incluir una unidad de búsqueda y carga 202 para buscar y cargar las instrucciones para su ejecución por el núcleo 106. Las instrucciones pueden ser buscadas y cargadas desde cualquier dispositivo de almacenamiento como Ia memoria 114 y/o los dispositivos de memoria tratados al hacer referencia a las Figs. 6 y 7. El núcleo 106 puede inc!uir también una unidad 204 de descodificación para descodificar Ia instrucción buscada y cargada. Por ejemplo, Ia unidad 204 de descodificación puede descodificar Ia instrucción buscada y cargada en una pluralidad de uops (microoperaciones). Adicionalmente, el núcleo 106 puede incluir una unidad 206 de programación. La unidad 206 de programación puede realizar diversas operaciones asociadas a! almacenamiento de las instrucciones descodificadas (por ejemplo, recibidas de Ia unidad 204 de descodificación) hasta que las instrucciones están listas para su despacho, por ejemplo, hasta que todos los valores de fuente de una instrucción descodificada se encuentren disponibles. En una realización, Ia unidad 206 de programación puede programar y/o emitir (referido aquí genéricamente como "despachar") instrucciones descodificadas a diversos componentes del núcleo 106 de
procesador para su ejecución, tal como una unidad 208 de ejecución. La unidad 208 de ejecución puede ejecutar las instrucciones despachadas después de que hayan sido descodificadas (por ejemplo, por ía unidad 204 de descodificación) y despachadas (por ejemplo, por Ia unidad 206 de programación). En una realización, ia unidad 208 de ejecución puede incluir más de una unidad de ejecución, tal como una unidad de ejecución de memoria, una unidad de ejecución de números enteros, una unidad de ejecución de coma flotante, u otras unidades de ejecución. La unidad 208 de ejecución puede llevar a cabo también diversas operaciones aritméticas tales como suma, resta, multiplicación y/o división, y puede incluir una o varias unidades de lógica aritmética (ALU). En una realización, un coprocesador (no representado) puede realizar diversas operaciones aritméticas conjuntamente con Ia unidad 208 de ejecución.
Además, Ia unidad 208 de ejecución puede ejecutar instrucciones desordenadas. Por ello, en una realización el núcleo 106 del procesador puede ser un núcleo de procesador desordenado. E! núcleo 106 puede incluir también una unidad 210 de retirada. La unidad 210 de retirada puede retirar las instrucciones ejecutadas después de que han sido comprometidas. En una realización, Ia retirada de las instrucciones ejecutadas puede dar lugar a que se comprometa el estado del procesador desde Ia ejecución de las instrucciones, siendo desasignados o liberados ios registros físicos usados por las instrucciones, etc.
El núcleo 106 puede incluir adicionalmente un registrador tampón (ROB) 212 para almacenar información sobre las instrucciones en vuelo (o uops) para el acceso por diversos componentes del núcleo 106 de procesador. En una realización, las entradas dentro del ROB 212 pueden corresponder (por ejemplo, punto) a registros de un archivo 221 de registro (incluyendo, por ejemplo, los registros 222A a-222Pf a los cuales se puede hacer aquí referencia colectivamente como "registros 222" o más generalmente como "registro 222"). Por ejemplo, las entradas del ROB 212 pueden guardar información sobre los registros 222 a los que se accede por las instrucciones en vuelo (o uops) y en el compromiso o retirada de una instrucción (por ejemplo, por Ia unidad 210 de retirada), se puede liberar un registro identificado en el ROB 212. Por tanto, se puede usar Ia información almacenada en el ROB 212 como una indicación de que se va a liberar un registro. En una realización, cada célula de bits de los registros 222 puede incluir al menos dos transistores para almacenar un bit de datos. En una realización, cada célula de bit de los registros 222 puede incluir una pluralidad de transistores de semiconductor de canal-p óxido metálico (P-MOS) y/o de
semiconductor canal-n óxido metálico (N-MOS) que están acoplados (por ejemplo, para formar dos inversores acoplados transversalmente). En una realización, se puede realizar los registros 222 usando dispositivos de memoria estática de acceso aleatorio (SRAM). También se puede usar compuertas NAND para realizar las células de bits de los registros 222.
En una realización, el núcleo 106 puede incluir una lógica 226 de inversión para provocar ei almacenamiento de un vaior seleccionado en una unidad de almacenamiento (por ejemplo, de! tipo de los registros 222) después de una indicación de que Ia unidad de almacenamiento va a ser liberada (por ejemplo, por referencia a la entrada correspondiente del ROB 212 o a una señal generada por el ROB 212, por ejemplo). El valor seleccionado cuyo almacenamiento se ha provocado por el elemento lógico 226 (al cual se puede hacer aquí referencia como a un "valor de inversión") se puede aimacenar en una unidad 228 de almacenamiento (¡a cual puede ser un registro en una realización). También, se puede almacenar el valor de inversión como variable en una unidad de almacenamiento compartido tal como ¡a memoria caché 116 L1 y/o la memoria 114. El valor 228 de inversión puede incluir más de un valor, comprendiendo, por ejemplo, un vaior de coma flotante y/o un valor de número entero. El núcleo 106 puede incluir además un elemento lógico 230 de actualización de inversión para actualizar el valor de inversión almacenado en Ia unidad 228. El elemento lógico 230 puede seleccionar o calcular el valor de inversión de diversas fuentes siendo escritos ios valores de este tipo en uno de los registros 222 (o escritas las versiones invertidas de ios valores en uno de ios registros 222 en una realización). También, en una realización, el elemento lógico 230 puede actualizar el valor 228 de inversión en base periódica. Ei núcleo^ 06 pude incluir también una unidad 240 de conductor-principal para • permitir Ia comunicación entre los componentes del núcleo 106 de procesador y otros componentes (tales como los componentes tratados haciendo referencia a Ia Fig. 1 , incluyendo Ia memoria caché 108 y/o Ia memoria 114) a través de uno o más conductores principales (por ejemplo, los conductores principales 104 y/o 112). La Fig. 3 ilustra un diagrama de bloques de partes de un archivo 300 de registro y otros componentes de un núcleo de procesador, según una realización de Ia invención. En una realización, el archivo 300 de registro puede ser el mismo del archivo 221 de registro tratado en referencia a Ia Fig. 2 ó similar. Como se muestra en Ia Fig. 3, el archivo 300 de registro puede incluir uno o más registro(s) 302 (los cuales pueden ser iguales o similares a los registros 222 de Ia Fig. 2). Como se muestra en ¡a
Fig. 3, cada uno de los registros 302 puede tener un campo 304 de periodo invertido correspondiente (para indicar, por ejemplo, durante cuanto tiempo ha almacenado o mantenido un valor invertido e! registro correspondiente) y un campo 306 de periodo no invertido (para indicar, por ejemplo, durante cuanto tiempo ha almacenado o mantenido un valor no invertido el registro correspondiente). En una realización, ambos campos 304 y 306 pueden ser representados por un único campo (por ejemplo, ejecutado en una realización como un contador). Por ejemplo, se puede incrementar un único contador (por ejemplo, por el elemento lógico 308) de acuerdo con Ia longitud de los periodos invertidos y disminuir (por ejemplo, por el elemento lógico 308) de acuerdo con Ia longitud de los periodos no invertidos. Este enfoque puede reducir Ia necesidad de contadores relativamente grandes. Alternativamente, el archivo 300 de registro puede incluir los campos 304 y/o 306 sólo para uno o más de los registros 302. Además, un elemento lógico 308 de temporizador puede actualizar ios valores almacenados en los campos 304 y/o 306, como se tratará adicionalmente aquí, por ejemplo, haciendo referencia a Ia Fig. 5. En una realización, Ia lógica 308 puede actualizar los valores almacenados en los campos 304 y/o 306 utilizando marcas de tiempo) las cuales, por ejemplo, pueden ser almacenadas en el archivo 300 de registro para cada registro 302 correspondiente). Las marcas de tiempo pueden registrar cada vez que un registro correspondiente inicia o interrumpe el almacenamiento de un valor invertido o no invertido, como se tratará más ampliamente haciendo referencia a Ia Fig. 5. En una realización, se pueden generar las marcas de tiempo por uno o varios registros 302 (por ejemplo, un registro único). Además, el registro para el cuai se generan las marcas de tiempo puede ser un registro fijo o un registro escogido por selección aleatoria, comparación apareada equilibrada, etc. Adicionalmente, como se ilustra en Ia Fig. 3, el archivo 300 de registro puede comunicarse con uno o varios de los dispositivos lógicos 226 y/o 308 para actualizar los valores almacenados en el(los) registro(s) 302, eí(los) campo(s) 304 y/o el(ios) campo(s) 306. Como se trató haciendo referencia a Ia Fig. 2, el valor 228 de inversión puede ser actualizado por el elemento lógico 230 y e! elemento lógico 226 puede almacenar el valor de inversión 228 en uno o varios de los registros 302 después de que se liberan los registros.
La Fig. 4 ilustran un diagrama de flujo de una realización de un método 400 para almacenar un valor seleccionado en una unidad de almacenamiento, según una realización de Ia invención. En una realización, se pueden utilizar diversos componentes tratados haciendo referencia a las Figs. 1-3 y 6-7 para realizar una o
varias de las operaciones tratadas haciendo referencia a Ia Fig. 4. Por ejemplo, se puede usar el método 400 para almacenar los datos en uno o varios de los registros 222 de Ia Fig. 2 y/o de los registros 302 de Ia Fig. 3.
Haciendo referencia a ias Figs. 1-4, en una operación 402, puede determinarse si una unidad de almacenamiento (por ejemplo, tal como uno de los registros 222 y/o 302) no va a ser usada. En una realización, se puede realizar Ia operación 402 haciendo referencia a una entrada correspondiente del ROB 212, tal como se trató haciendo referencia a la Fig. 2. El método 400 continúa con Ia operación 402 hasta que se detecta que una unidad de almacenamiento no va a ser usada. Una vez determina Ia operación 402 que una unidad de almacenamiento no va a ser usada, en una operación 404 se determina si se encuentra disponible un puerto para escribir ios datos en una unidad de almacenamiento (por ejemplo, si se encuentra disponible un puerto de escritura para escribir los datos en uno de los registros 222 y/o 302). Si en la operación 404 se encuentra disponible un puerto de escritura, se puede almacenar un valor seleccionado en Ia unidad de almacenamiento (por ejemplo, se puede almacenar el valor 228 de inversión en uno de los registros 222 y/o 302 por el elemento lógico 226).
La Fig. 5 ilustra un diagrama de flujo de una realización de un método 500 para actualizar uno o varios campos y almacenar un valor seleccionado en una unidad de almacenamiento, según una realización de Ia invención. En una realización, se puede utilizar varios componentes tratados haciendo referencia a las Figs. 1-3 y 6-7 para realizar una o varias de las operaciones tratadas haciendo referencia a Ia Fig. 5. Por ejemplo, se puede usar el método 500 para actualizar los valores almacenados en los campos 304 y/o 306 y/o para almacenar ios datos en uno o varios de los registros 222 de Ia Fig. 2 y/o en los registros 302 de Ia Fig. 3.
Haciendo referencia a las Figs. 1-5, después de Ia operación 404 (por ejemplo, una vez que se determina si se encuentra disponible un puerto de escritura), en una operación 502, puede determinarse si Ia unidad de almacenamiento tratada haciendo referencia a Ia operación 402 ha almacenado o mantenido un valor invertido durante un periodo más corto que un valor no invertido. En una realización, se puede realizar la operación 502 por el elemento lógico 308 haciendo referencia a los campos 304 y/o 306 correspondientes al registro 302 tratado al hacer referencia a Ia operación 402. (por ejemplo, cual va a ser liberado). Después de determinar que Ia unidad de almacenamiento ha almacenado un valor no invertido durante un periodo más largo que un valor invertido en Ia operación 502, se puede continuar el método 500 con Ia
operación 406. Después de Ia operación 406, el método 500 (en una operación 504) puede actualizar el(los) valor(es) almaceπado(s) ΘΠ los correspondientes campos del temporizador, por ejemplo, para indicar que Ia correspondiente unidad de almacenamiento está almacenando el valor 228 de inversión. En una realización, ios campos 304 y/o 306 pueden incfuir otros varios campos para aimacenar una marca de tiempo correspondiente ai momento en el que se almacena un valor invertido y/o un valor no invertido y es subsiguientemente reemplazado por un valor diferente para permitir que el dispositivo lógico 308 determine el periodo de tiempo durante el cual uno o varios de los registros 302 aímacena(n) los valores correspondientes. Además, como se muestra en Ia Fig. 5, si las operaciones 404 ó 502 dan como retorno una respuesta negativa, se puede reanudar el método 500 con Ia operación 402.
La Fig. 6 ilustra un diagrama de bloques de un sistema informático 600 según una realización de Ia invención. El sistema informático 600 correspondiente puede incluir una o varías unidades centrales de proceso (CPU) 602 ó procesadores que se comunican a través de una red de interconexión (o conductor principal) 604. Los procesadores 602 pueden incfuir un procesador de uso general, un procesador de red (que procesa los datos comunicados sobre una red informática 603), u otros tipos de procesador (incluyendo un procesador de ordenador de conjunto de instrucciones reducido (RISC) o un ordenador de conjunto de instrucciones complejo (CISC). Además, los procesadores 602 pueden tener un diseño de núcleo único o múltiple. Los procesadores 602 con un diseño de núcleo múltiple pueden integrar diferentes tipos de núcleo de procesador en Ia misma pastilla de circuito integrado (IC). También, se pueden realizar los procesadores 602 con diseño de núcleo múltiple como multiprocesadores simétricos o asimétricos. En una realización, uno o varios de los procesadores 602 pueden ser iguales o similares a ios procesadores -102 de lar Fig. i: Por ejemplo, uno o varios de los procesadores 602 pueden incluir uno o varios de los núcleo 106 tratados haciendo referencia a Ia Fig. 1. También, se puede realizar las operaciones tratadas haciendo referencia a las Figs. 1-5 por uno o varios de los componentes de! sistema 600. Un conjunto de chips 606 se puede comunicar también con ¡a red de interconexión 604. Ei conjunto de chips 606 puede incluir un nodo central de control de memoria (MCH) 608. Ei MCH 608 puede incluir un controlador 610 de memoria que se comunica con fa memoria 1 14. La memoria 1 14 puede almacenar datos, incluyendo secuencias de instrucciones, las cuales pueden ser ejecutadas por Ia CPU 602, o por cualquier otro dispositivo incluido en el sistema informático 600. En una realización de
Ia invención, la memoria 114 puede incluir uno o varios dispositivos de almacenamiento volátil (o memoria) tales como memoria de acceso aleatorio (RAM), RAM dinámica (DRAM), DRAM síncrona (SDRAM), RAM estática (SRAM), u otros tipos de dispositivos de almacenamiento. La memoria no volátil puede ser utilizada también como un disco duro. Otros dispositivos se pueden comunicar a través de ia red interconectada 604, tales como las CPU múltiples y/o las memorias de sistema múltiples.
Ei MCH 608 puede incluir una interfaz gráfica 614 que se comunica con un dispositivo de presentación 616. En una realización de Ia invención, Ia interfaz gráfica 614 puede comunicarse con el dispositivo de presentación 616 a través de un puerto de gráficos acelerado (AGP). En una realización de Ia invención, el dispositivo de presentación 616 (tal como una presentación de pantalla plana) puede comunicarse con Ia interfaz gráfica 614 a través, por ejemplo, de un convertidor de señal que transfiere una representación digital de una imagen almacenada en un dispositivo de almacenamiento tal como una memoria de vídeo o memoria de sistema en señales de presentación que son presentadas en el dispositivo de presentación 616. Las señales de presentación producidas por el dispositivo de presentación pueden pasar a través de diversos dispositivos de control antes de ser interpretadas por el dispositivo de presentación 616 y de ser presentadas subsiguientemente en el mismo. Una interfaz 618 de nodo central puede permitir que se comunique el MCH 608 con un nodo central de control de entrada/salida (ICH) 620. El ICH 620 puede proporcionar una interfaz al (a los) dispositivo(s) l/O que comunican con el sistema informático 600. El ICH 620 puede comunicar con un conductor principal 622 a través de un puente periférico (o controlador 624), tal como un puente de interconexión de componentes periféricos (PCI), un controlador de conductor principal universal'en serie (USB), u otros tipos de puentes o controladores de periféricos. El puente 624 puede proporcionar un camino de datos entre Ia CPU 602 y los dispositivos periféricos. Se puede utilizar otros tipos de topologías. También, conductores principales múltiples pueden comunicarse con el ICH 620, por ejemplo, a través de múltiples puentes o controladores. Además, otros periféricos en comunicación con el ICH 620 pueden incluir, en diversas realizaciones de Ia invención, electrónicas de accionamiento integradas (IDE) o disco(s) duro(s) de interfaz de pequeños sistemas informáticos (SCSI), puertos USB, un teclado, un ratón, puerto(s) en paralelo, puerto(s) en serie, unidades de disco externo, soportes de salida digital (por ejemplo, interfaz de video digital (DVI), u otros dispositivos.
El conductor principal 622 puede entrar en comunicación con un dispositivo 626 de audio, uno o varias unidades de disco 628, y un dispositivo 630 de interfaz de red (el cual está en comunicación con ia red informática 603). Otros dispositivos se pueden comunicar a través de! conductor principal 622. También, diversos componentes (tales como ei dispositivo 630 de interfaz de red) pueden comunicarse con et MCH 608 en algunas realizaciones de Ia invención. Adicionalmente, se puede combinar ef procesador 602 y el MCH 608 para formar un único chip. Además, se puede incluir un acelerador gráfico dentro del MCH 608 e otras realizaciones de Ia invención. Además, ei sistema informático 600 puede incluir una memoria (o unidad de almacenamiento) volátil y/o no volátil. Por ejemplo, Ia memoria no volátil puede incluir uno o varios de Io siguientes dispositivos: una memoria sólo de lectura (ROM), una ROM programable (PROM), una PROM borrable (EPROM), una PROM borrable eléctricamente (EEPROM), una unidad de disco (por ejemplo, 628), un disco externo, una ROM de disco compacto (CD-ROM), un disco versátil digital (DVD), una memoria flash, un disco magnetoóptico, u otros tipos de medios legibles en máquina no volátiles que sean capaces de almacenar datos electrónicos (por ejemplo incluyendo instrucciones).
La Fig. 7 ilustra un sistema informático 700 que está colocado en una configuración punto a punto (PtP), según una realización de Ia invención. En particular, Ia Fig. 7 muestra un sistema en e! que los procesadores, Ia memoria, y los dispositivos de entrada/salida están interconectados por cierto número de interfaces de punto a punto. Se puede realizar Ia operaciones tratadas haciendo referencia a las Figs. 1-6 por uno o varios componentes del sistema 700. Como se ilustra en Ia Fig. 7,- el sistema 700 puede" incluir diversos" procesadores, dos de los cuales (los procesadores 702 y 704) se muestran en aras de Ia claridad. Los procesadores 702 y 704 pueden incluir cada uno un nodo central de controlador local de memoria (MCH) 706 y 708 para permitir Ia comunicación con las memorias 710 y 712. Las memorias 710 y/o 712 pueden almacenar diversos datos tales como los tratados haciendo referencia a Ia memoria 1 14 de las Figs. 1 , 2 y 6.
En una realización, los procesadores 702 y 704 pueden ser uno de los procesadores 602 tratados haciendo referencia a Ia Fig. 6. Los procesadores 702 y 704 pueden intercambiar los datos a través de una interfaz punto a punto (PtP) 714 usando los circuitos 716 y 718 de interfaz PtP respectivamente. También, los procesadores 702 y 704 pueden intercambiar datos con un conjunto de chips 720 a
través de las interfaces PtP individuales 722 y 724 usando ios circuitos 726, 728, 730 y 732 de interfaz de punto a punto. El conjunto de chips 720 puede intercambiar datos adicionalmente con un circuito de gráficos 734 a través de una interfaz gráfica 736, usando un circuito 737 de interfaz PtP. Se puede disponer al menos una realización de Ia invención dentro de los procesadores 702 y 704. Por ejemplo, uno o varios de los núcleos 106 de las Figs. 1 puede estar situado dentro de los procesadores 702 y 704. Sin embargo, pueden existir otras realizaciones de Ia invención en otros circuitos, unidades lógicas, o dispositivos dentro del sistema 700 de ia Fig. 7. Además, otras realizaciones de Ia invención pueden estar distribuidas a través de diversos circuitos, unidades lógicas, o dispositivos ilustrados en Ia Fig. 7.
El conjunto de chips 720 puede comunicarse con un conductor principal 740 usando un circuito 741 de interfaz PtP. El conductor principal 740 puede comunicarse con uno o varios dispositivos, tales como un puente 742 de conductor principal y los dispositivos de i/O 743. A través de un conductor principal 744, el puente 742 de conductor principal puede comunicarse con otros dispositivos taíeε como un teclado/ratón 745, los dispositivos 746 de comunicación (tales como módems, dispositivos de interfaz de red, u otros dispositivos de comunicación que pueden entrar en comunicación con Ia red informática 603), el dispositivo de I/O de audio 747, y/o un dispositivo 748 de almacenamiento de datos. El dispositivo 748 de almacenamiento de datos puede almacenar el código 749 que puede ser ejecutado por los procesadores 702 y/o 704.
En diversas realizaciones de Ia invención, se puede llevar a cabo las operaciones aquí tratadas en relación con las Figs 1-7 como hardware (por ejemplo, circuitería lógica), software,- microprogramas, o una combinación de los -mismos, Io cual puede disponerse como un producto de programación informática, por ejemplo, incluyendo un medio legible para Ia máquina o legible para el ordenador que tiene almacenadas en el mismo las instrucciones (o los procedimientos de software) utilizadas para programar un ordenador o realizar un proceso tratado aquí. E! medio legible para la máquina puede incluir un dispositivo de almacenamiento tal como los tratados haciendo referencia a las Figs. 1-7.
Adicionalmente, los medios legibles para el ordenador de este tipo pueden ser descargados como un producto de programa informático, cuyo programa puede ser transferido desde un ordenador remoto (por ejemplo, un servidor) a un ordenador solicitante (por ejemplo, un cliente) por medio de señales de datos introducidas en una
onda portadora o en un medio de propagación a través de un enlace de telecomunicaciones (por ejemplo, un conductor principal, un módem, o una conexión de red). Por consiguiente, aquí se considerará que una onda portadora comprende un medio legible para Ia máquina. La referencia en Ia especificación a "una realización", "alguna realización" o
"algunas realizaciones" significa que una elemento concreto, estructura o característica descrita en relación con la(s) realización(es) puede ser incluida en al menos una ejecución. Las apariciones de Ia frase "en una realización" en diversos lugares de Ia especificación pueden referirse todas ellas o no a Ia misma realización. También, en Ia descripción y en las reivindicaciones, se pueden usar los términos "acoplado" y "conectado" junto con sus derivados. En algunas realizaciones de Ia invención, se puede usar "conectado" para indicar que dos o más elementos están en contacto físico o eléctrico directo entre sí, "Acoplado puede significar que dos o más elementos están en contacto físico o eléctrico directo. Sin embargo, "acoplado" puede significar también que dos o más elementos no están en contacto físico o eléctrico directo, pero que pueden todavía cooperar o interactuar entre sí.
De este modo, aunque se han descrito realizaciones de a invención en un lenguaje específico de las características estructurales y/o de los actos metodológicos, debe entenderse que el Ia materia reivindicada puede no estar limitada a las características específicas o actos descritos. Antes bien, las características específicas y actos se describen como formas a título de muestra de llevar a cabo Ia materia reivindicada.
Claims
REIVINDICACIONES
1 , Un procesador que comprende: una unidad de almacenamiento para almacenar datos; un contador para almacenar un primer valor que indique durante cuanto tiempo una parte de Ia unidad de almacenamiento ha mantenido un valor invertido frente a un valor no invertido; y un primer elemento lógico para causar el almacenamiento de un segundo valor en Ia unidad de almacenamiento en respuesta a una detección de que Ia unidad de almacenamiento no va a ser usada.
2. Ei procesador de Ia reivindicación 1 , en el que el primer elemento lógico causa el almacenamiento del segundo valor en Ia unidad de almacenamiento en respuesta al primer valor que indica que ia parte de Ia unidad de almacenamiento ha mantenido un valor invertido durante un periodo de tiempo más corto que el correspondiente a un valor no invertido.
3. Ei procesador de Ia reivindicación 1 , en el que Ia unidad de almacenamiento comprende un registro.
4. El procesador de Ia reivindicación 3, comprendiendo además un archivo de registro que comprende el registro.
5. EI procesador de Ia reivindicación 1, comprendiendo además un segundo elemento lógico para actualizar el primer valor en base a uno o más accesos a Ia unidad de almacenamiento.
6, Un método que comprende:
- detectar si se ha liberado un registro; y
- almacenar un valor en el registro en base a cuanto tiempo ha almacenado el registro un valor invertido y un valor no invertido.
7. E! método de Ia reivindicación 6, comprendiendo además actualizar el valor después de determinar que el registro ha mantenido un valor invertido durante un periodo de tiempo más corto que el correspondiente a un valor no invertido.
8. El método de Ia reivindicación 6, comprendiendo además actualizar el valor en base a un vaior escrito en uno de una piuraüdad de registros en un archivo de registro.
9. El método de ia reivindicación 6, en el que el almacenamiento se realiza en respuesta a una determinación de que se encuentra disponible un puerto de escritura para escribir el valor en el registro.
10. Un sistema informático que comprende:
- una memoria para almacenar datos; y - un núcleo de procesador que comprende: un registro para almacenar una parte de los datos almacenados en Ia memoria; y un elemento lógico que causa el almacenamiento de un valor en el registro en respuesta a una detección de que el registro va a ser liberado.
11. El sistema de Ia reivindicación 10, en el que el registro comprende una pluralidad de transistores de semiconductor de canal-p óxido metálico (P-MOS) o de canal-n óxido metálico (N-MOS).
12. El sistema de Ia reivindicación 10, comprendiendo además una pluralidad de núcleos de procesador para acceder a los datos almacenados en Ia memoria.
13. El sistema de Ia reivindicación 10, comprendiendo además un dispositivo de audio.
14. Un aparato que comprende:
- un primer elemento lógico para invertir los valores de un primer registro cuando el primer registro no almacena datos a usar por un segundo elemento lógico; y - un segundo registro para almacenar valores invertidos a almacenar en el primer registro.
15. El aparato de Ia reivindicación 14, en el que el primer elemento lógico va a invertir los valores almacenados en el primer registro según un primer periodo de inversión.
16. El aparato de !a reivindicación 15, en el que los valores invertidos van a ser almacenados en el primer registro sólo si se encuentra disponible un puerto de escritura para e! primer registro.
17. El aparato de Ia reivindicación 15, en el que el segundo elemento lógico incluye una unidad de ejecución de procesador.
18. Ei aparato de Ia reivindicación 17, en el que el primer periodo de inversión corresponde al 50% del tiempo de operación de Ia unidad de ejecución del procesador.
19. EI aparato de Ia reivindicación 15, en el que el primer elemento lógico incluye un elemento lógico de inversión y un elemento lógico de actualización de valor de inversión.
20. El aparato de Ia reivindicación 15, en el que el primer periodo de inversión va a ser medido por un primer contador de inversión acoplado a! primer registro.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/ES2006/070168 WO2008053053A1 (es) | 2006-11-03 | 2006-11-03 | Reducción del efecto de envejecimiento en los registros |
US11/791,145 US8578137B2 (en) | 2006-11-03 | 2006-11-03 | Reducing aging effect on registers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/ES2006/070168 WO2008053053A1 (es) | 2006-11-03 | 2006-11-03 | Reducción del efecto de envejecimiento en los registros |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008053053A1 true WO2008053053A1 (es) | 2008-05-08 |
Family
ID=39343852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/ES2006/070168 WO2008053053A1 (es) | 2006-11-03 | 2006-11-03 | Reducción del efecto de envejecimiento en los registros |
Country Status (2)
Country | Link |
---|---|
US (1) | US8578137B2 (es) |
WO (1) | WO2008053053A1 (es) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578137B2 (en) | 2006-11-03 | 2013-11-05 | Intel Corporation | Reducing aging effect on registers |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070271421A1 (en) * | 2006-05-17 | 2007-11-22 | Nam Sung Kim | Reducing aging effect on memory |
US9229051B2 (en) | 2012-11-15 | 2016-01-05 | Freescale Semiconductor, Inc. | Integrated circuit with degradation monitoring |
US9329229B2 (en) | 2012-11-15 | 2016-05-03 | Freescale Semiconductors, Inc. | Integrated circuit with degradation monitoring |
US9058436B1 (en) * | 2012-11-20 | 2015-06-16 | Altera Corporation | Method and system for reducing the effect of component aging |
US9531398B2 (en) | 2015-03-11 | 2016-12-27 | Analog Devices, Inc. | Limiting aging effects in analog differential circuits |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030198112A1 (en) * | 2002-04-16 | 2003-10-23 | Sun Microsystems, Inc. | Variable delay compensation for data-dependent mismatch in characteristic of opposing devices of a sense amplifier |
US20050134360A1 (en) * | 2003-12-23 | 2005-06-23 | International Business Machines Corporation | Method and apparatus to reduce bias temperature instability (BTI) effects |
US20050162969A1 (en) * | 2002-04-22 | 2005-07-28 | Hitachi, Ltd. | Semiconductor integrated circuit device |
JP2006252696A (ja) * | 2005-03-11 | 2006-09-21 | Internatl Business Mach Corp <Ibm> | バイアス温度不安定性(bti)効果を低減するための方法および装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4724518A (en) * | 1983-07-29 | 1988-02-09 | Hewlett-Packard Company | Odd/even storage in cache memory |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
GB8814077D0 (en) * | 1988-06-14 | 1988-07-20 | Int Computers Ltd | Data memory system |
US4961162A (en) * | 1989-01-13 | 1990-10-02 | International Business Machines Corporation | Multiprocessing system for performing floating point arithmetic operations |
JP3204426B2 (ja) | 1993-02-26 | 2001-09-04 | ソニー株式会社 | フイルタ調整回路 |
JP3721725B2 (ja) * | 1997-07-09 | 2005-11-30 | ソニー株式会社 | 情報処理方法および情報処理装置 |
US6912637B1 (en) * | 1998-07-08 | 2005-06-28 | Broadcom Corporation | Apparatus and method for managing memory in a network switch |
US6373753B1 (en) * | 1999-02-13 | 2002-04-16 | Robert J. Proebsting | Memory array having selected word lines driven to an internally-generated boosted voltage that is substantially independent of VDD |
US6933731B2 (en) * | 2003-10-17 | 2005-08-23 | Texas Instruments Incorporated | Method and system for determining transistor degradation mechanisms |
US7129800B2 (en) * | 2004-02-04 | 2006-10-31 | Sun Microsystems, Inc. | Compensation technique to mitigate aging effects in integrated circuit components |
US6933869B1 (en) * | 2004-03-17 | 2005-08-23 | Altera Corporation | Integrated circuits with temperature-change and threshold-voltage drift compensation |
US7395373B2 (en) * | 2005-09-20 | 2008-07-01 | International Business Machines Corporation | Set-associative cache using cache line decay counts and set overflow |
US20070271421A1 (en) | 2006-05-17 | 2007-11-22 | Nam Sung Kim | Reducing aging effect on memory |
US7310281B1 (en) * | 2006-09-01 | 2007-12-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | Semiconductor memories with refreshing cycles |
US7576569B2 (en) * | 2006-10-13 | 2009-08-18 | International Business Machines Corporation | Circuit for dynamic circuit timing synthesis and monitoring of critical paths and environmental conditions of an integrated circuit |
WO2008053053A1 (es) | 2006-11-03 | 2008-05-08 | Intel Corporation | Reducción del efecto de envejecimiento en los registros |
-
2006
- 2006-11-03 WO PCT/ES2006/070168 patent/WO2008053053A1/es active Application Filing
- 2006-11-03 US US11/791,145 patent/US8578137B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030198112A1 (en) * | 2002-04-16 | 2003-10-23 | Sun Microsystems, Inc. | Variable delay compensation for data-dependent mismatch in characteristic of opposing devices of a sense amplifier |
US20050162969A1 (en) * | 2002-04-22 | 2005-07-28 | Hitachi, Ltd. | Semiconductor integrated circuit device |
US20050134360A1 (en) * | 2003-12-23 | 2005-06-23 | International Business Machines Corporation | Method and apparatus to reduce bias temperature instability (BTI) effects |
JP2006252696A (ja) * | 2005-03-11 | 2006-09-21 | Internatl Business Mach Corp <Ibm> | バイアス温度不安定性(bti)効果を低減するための方法および装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578137B2 (en) | 2006-11-03 | 2013-11-05 | Intel Corporation | Reducing aging effect on registers |
Also Published As
Publication number | Publication date |
---|---|
US8578137B2 (en) | 2013-11-05 |
US20090150656A1 (en) | 2009-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6012876B2 (ja) | ツインセルの記憶データをマスクして出力する半導体装置 | |
US6643725B1 (en) | Memory card having a buffer memory for storing testing instruction | |
US8218380B2 (en) | Degradation equalization for a memory | |
EP3128517A1 (en) | Semiconductor device, pre-write program, and restoration program | |
US9734896B2 (en) | Circuits and methods for performance optimization of SRAM memory | |
WO2008053053A1 (es) | Reducción del efecto de envejecimiento en los registros | |
BR112012023650B1 (pt) | sistema de memória com múltiplos fluxos de instrução | |
JP2004247026A (ja) | 半導体集積回路及びicカード | |
US20180121212A1 (en) | Low power memory systems | |
KR20090003340A (ko) | 메모리 에이징 효과 감소 | |
US20220319612A1 (en) | Systems and methods involving hardware-based reset of unresponsive memory devices | |
US7953941B2 (en) | Data processor with memory controller having burst access operation | |
JP4194600B2 (ja) | データ転送方法及びシステム | |
US9043561B2 (en) | Storage device | |
KR20070029193A (ko) | 데이터 유지 래치를 갖는 메모리 장치 | |
US7251186B1 (en) | Multi-port memory utilizing an array of single-port memory cells | |
TW201729069A (zh) | 具有記憶體管理機制之電子系統及其操作方法 | |
JP2005244212A5 (es) | ||
US20160064069A1 (en) | Low voltage sram | |
US8582384B1 (en) | Process variability tolerant programmable memory controller for a pipelined memory system | |
US9274885B2 (en) | Phase change memory with switch (PCMS) write error detection | |
KR20190031031A (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US9324384B2 (en) | Sense amplifiers and memory devices having the same | |
JP2004158084A (ja) | 半導体集積回路装置 | |
US10783953B2 (en) | Memory with expandable row width |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 11791145 Country of ref document: US |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 06820040 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06820040 Country of ref document: EP Kind code of ref document: A1 |