WO2007048859A1 - Arquitectura en racimo que percibe las variaciones - Google Patents

Arquitectura en racimo que percibe las variaciones Download PDF

Info

Publication number
WO2007048859A1
WO2007048859A1 PCT/ES2005/070152 ES2005070152W WO2007048859A1 WO 2007048859 A1 WO2007048859 A1 WO 2007048859A1 ES 2005070152 W ES2005070152 W ES 2005070152W WO 2007048859 A1 WO2007048859 A1 WO 2007048859A1
Authority
WO
WIPO (PCT)
Prior art keywords
domain
clock
variations
domains
logic
Prior art date
Application number
PCT/ES2005/070152
Other languages
English (en)
French (fr)
Inventor
Xavier Vera
Oguz Ergin
Osman Unsal
Antonio Gonzalez
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to US10/562,189 priority Critical patent/US7600145B2/en
Priority to PCT/ES2005/070152 priority patent/WO2007048859A1/es
Priority to CN2005800519281A priority patent/CN101297255B/zh
Priority to KR1020087009947A priority patent/KR100971806B1/ko
Publication of WO2007048859A1 publication Critical patent/WO2007048859A1/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power

Definitions

  • BACKGROUND This description generally refers to the field of electronics. More particularly, an embodiment of the invention relates to a group or cluster architecture, which perceives the variations.
  • a clock frequency of a processor is established according to the delay of the critical path or path (worst case scenario), plus safety margins due to the magnitude of the semiconductor manufacturing process (P), of the operating voltage (V), temperature (T) and variations (PVTI) in the vectors or input values (I).
  • P semiconductor manufacturing process
  • V operating voltage
  • T temperature
  • VTI variations
  • I input values
  • circuit verification can be more complex, since variations can transform noncritical paths into a critical path.
  • the clock frequency may have to be set to lower values to ensure correctness of the processing or treatment results, which may have an impact on costs. For example, it may be necessary to discard parts with a low yield, which can increase costs.
  • Figure 1 illustrates a block diagram of a group or cluster architecture according to an embodiment.
  • Figure 2 illustrates a flow chart of a method for adjusting a clock signal of a clock domain in response to the one or more variations, in accordance with one embodiment.
  • Figure 3 illustrates a block diagram of a dedicated or exclusive communication channel stage of a processor, in accordance with one embodiment.
  • Figure 4 illustrates a flow chart of a method for determining whether or not to re-carry out one or more consumers of an instruction speculatively performed, in accordance with one embodiment.
  • Figures 5 and 6 illustrate block diagrams of computer systems according to various embodiments of the invention.
  • Figure 7 illustrates a block diagram of a computer system, in accordance with one embodiment.
  • Some of the embodiments explained here are capable of providing a group or cluster architecture (eg, an architecture with multiple clock domains) that perceives one or more variations of PVTI, such as the architectures that are exposed by referring to the Figures 1-7. More specifically, the group or cluster architecture (eg, an architecture with multiple clock domains) that perceives one or more variations of PVTI, such as the architectures that are exposed by referring to the Figures 1-7. More specifically, the group or cluster architecture (eg, an architecture with multiple clock domains) that perceives one or more variations of PVTI, such as the architectures that are exposed by referring to the Figures 1-7. More specifically, the
  • Figure 1 illustrates a block diagram of a cluster architecture 100 in accordance with one embodiment.
  • the architecture
  • the architecture 100 may represent logical components within a processor or a certain number of processors (such as those set forth with reference to Figures 5 and 6).
  • the architecture 100 may include one or more domains, such as a second level cache domain 100, a front or previous terminal domain 104, and one or more rear terminal domains 106, whose clock frequencies can be set to response to variations detected based on sensor data and / or the number of errors detected in the given clock domain. This can reduce variations by cluster (or by clock domain).
  • the variations may consist of one or more of the variations in the semiconductor manufacturing process, in the variation of the operating voltage, in the variation of the temperature and / or in the variation in the vector or input value.
  • each of the domains (for example, 102, 104 and 106) may include, in various embodiments, more or less components than those shown in Figure 1.
  • the second level cache domain (L2) 102 may include an L2 108 cache (for example, for storing instructions that include data), one or more L2 1 10 sensors, and a L2 1 12 frequency controller.
  • the L2 1 10 sensors may correspond to one or more components of the L2 102 cache domain (for example, the L2 108 cache) to detect one or more variations within domain 102.
  • L2 1 10 sensors are coupled to the L2 1 12 frequency controller to inform the L2 1 12 frequency controller of any variations present in the L2 102 cache domain. Variations can also be detected based on the number of errors detected within the L2 102 cache domain.
  • the L2 1 12 frequency controller can use the detected variations to adjust a clock signal for the components of the L2 102 cache domain.
  • L2 1 12 controls The frequency of L2 1 12 can enable the components of the L2 102 cache domain to adjust to changing variations.
  • the L2 108 cache can be shared by a plurality of cores of a multi-core processor, such as those set forth with reference to Figures 5 and 6.
  • the L2 108 cache may have taken from the same wafer or fragment as the processor cores.
  • a processor may include domains 104 and 106, and may or may not include the L2 108 cache.
  • the front or previous terminal domain 104 may include one or more sensors 1 14 of the previous terminal, a frequency controller 1 16 of the previous terminal, a intermediate storage register for reordering 1 18, a redenomination and routing unit 120, a tracking cache 122, a decoding unit 124, a sequencing device 126 and / or a branch prediction unit 128.
  • the previous terminal domain 104 may include other components, such as an instruction retrieval and loading unit, or the like.
  • the anterior terminal sensors 1 14 may correspond to one or more components of the anterior terminal domain 104 in order to detect one or more variations within the anterior end domain 104.
  • the sensors 1 14 are coupled to the frequency controller 1 16 with in order to inform the frequency controller 1 14 of any variations that occur in the previous terminal domain 104.
  • the variations can also be detected based on the number of errors detected within the previous terminal domain 104.
  • the frequency controller 1 The previous terminal 16 may use the variations detected to adjust a clock signal for the components of the previous terminal domain 104. Accordingly, the frequency controller 1 16 may enable the components of the previous terminal domain 104 to adapt to changing variations.
  • the back terminal domains 106 may include one or more of a first level cache domain (L 1) 128 and one or more execution domains 130-1 to 130-N.
  • the cache domain of L2 128 may include a cache of L l 132 (for example, for the purpose of storing data including instructions), one or more sensors of L l 134, and a frequency controller of L l 136.
  • the sensors of L l 134 may correspond to one or more components of the cache domain of L l 128 (for example, the cache memory of L l 132), in order to detect one or more variations within domain 128.
  • the sensors of L l 134 are coupled to the frequency controller of L l 136 to inform the frequency controller 136 of any variations present in the cache domain of L l 128. Variations can also be detected based on the number of errors detected within the cache domain of L l 128.
  • the frequency controller of L l 136 can use the variations detected to adjust a clock signal for the components of the cache domain of L l 128. In consequently, the frequency controller of L l 136 can enable the components of the cache domain of Ll 128 to adapt to changing variations.
  • the execution domains 130-1 to 130-N may consist of any suitable execution or realization unit, such as an integer execution unit and / or a floating point execution unit.
  • the execution domains 130-1 to 130-N may each comprise an emission queue (138-1 to 138-N, respectively), a record file (140-1 to 140-N, respectively) , an execution domain frequency controller (142-1 to 142-N, respectively), one or more execution domain sensors (144-1 to 144-N, respectively), and / or an execution unit (146 - 1 to 146-N, respectively).
  • each of the domains 102, 104, and 106 may include one or more "intermediate in-first-out” structure buffer record (s) (FIFO - "first-in, first-out” ) 148, in order to synchronize communication between the various clock domains (for example, between domains 102, 104 and / or 106).
  • FIFO 148 buffer records can be temporarily regulated by means of a clock signal, using the clock of the receiving domain (for example, the clock that is generated by the respective frequency controller).
  • the architecture 100 may include an interconnection or bus 150 to facilitate communication between the various components of the architecture 100.
  • an instruction has been executed successfully (for example, by the execution domains 130-1 to 130-N)
  • the order or exhortation of the instruction can be communicated to ROB 1 18 (for example, to through interconnection 150) to withdraw that instruction.
  • domains located within the rear terminal for example, domains 128 and 130-1 to 130-N
  • Figure 2 illustrates a flow chart of a method 200 to adjust a clock signal of a clock domain in response to one or more variations, in accordance with one embodiment.
  • the operations of the method 200 may be carried out by means of one or more components of a processor, such as the components set forth with reference to Figure 1.
  • one or more sensors can detect variations (such as the variations explained in relation to the Figure 1) within a clock domain (for example, domains 102, 104 and / or 106), in operation 202.
  • These sensors may consist of one or more temperature sensors, voltage weakening probes, and / or ring oscillators.
  • a frequency controller (such as frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N) can detect one or more errors in the regulation of the time sequence within the clock domain (for example, domains 102, 104 or 106, respectively), as will be further explained with reference to Figures 3 and 4.
  • each of the frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N may include an error counter (for example, to count the number of errors detected within a domain of corresponding clock) and a cycle counter (not shown).
  • Any suitable storage mechanism can be used to perform the error counter and cycle counter in practice, such as a physical or hardware support record, and / or a variable stored in a shared memory (for example, the memory cache L2 108 and / or the cache of Ll 132).
  • Frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N may also have access to a threshold value that may indicate the number of permissible errors for a given domain (expressed, for example, as a percentage of the errors of regulation of the temporal sequence).
  • the threshold value can be stored in any suitable storage mechanism, such as a physical support record and / or a variable stored in a shared memory (for example, the L2 108 cache and / or the Ll 132 cache ). Also, the threshold value can be programmable in one embodiment.
  • the frequency controllers 1 12, 1 16 , 136 and 142-1 to 142-N can generate a clock signal for their respective domain components, which is adjusted (208) according to the variations detected in a respective domain (for example, in domains 102, 104 or 106, respectively).
  • the frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N can increase the frequency of their generated clock pulse if the time sequence regulation error within the respective clock domain (for example , domains 102, 104 or 106, respectively) is lower than the threshold value (206).
  • the frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N can reduce the frequency of their generated clock pulse in the event that the error in the regulation of the time sequence within the respective clock domain (for example, domains 102, 104 or 106, respectively) exceed the threshold value (206).
  • method 200 may resume operations 202 and 204 to continue detecting variations within the clock domain.
  • each domain may be marching at a clock frequency that may be different from the clock frequency of the other domains. This may allow each domain to adapt to the changing variations that occur throughout the life of a product, for example, to mitigate the aging problem associated with semiconductor devices, and / or reduce verification costs. This can also reduce the impact of variations within the same fragment and can improve performance, by adapting the frequency of each domain to the dynamic variations that that domain can experience.
  • each domain may have a different sensitivity to various errors; thus, a different frequency controller for each domain can optimize the overall performance of an architecture (100).
  • the frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N can generate their clock pulse based on the same signal of reference clock
  • the frequency controllers 1 12, 1 16, 136 and 142-1 to 142-N can adjust the frequency of a reference clock (for example, a clock extended to the entire system), in one embodiment. Consequently, the domains (102-106) may be dependent on a reference clock signal.
  • FIG 3 illustrates a block diagram of a dedicated or exclusive communication channel stage 300 of a processor, in accordance with one embodiment.
  • the dedicated communication channel stage 300 can be used to perform instructions speculatively, for example, to increase performance and / or reduce latency.
  • each of the actions 146-1 to 146-N of Figure 1 may include one or more of the dedicated communication channel stages 300.
  • the dedicated communication channel stage 300 may include an input logic 302, a processing logic 304 and a comparison logic 306.
  • the comparison logic 306 may additionally include a selection logic 308 (which may be a multiplexer in one embodiment). ), a first storage unit 310, a second storage unit 312 and an error detection logic 314.
  • the input logic 302 can receive input data (including instructions) that are to be processed or processed by the treatment logic 304, and the output values produced by the treatment logic can be stored in the first storage unit 310, through a selection logic 308, and in the second storage unit 3 12.
  • the first storage unit 310 and the second storage unit 312 are bistable retention circuits.
  • the first and second bistable retention circuits (310 and 312, respectively) can store a logical value presented in their inputs with sufficient set time and wait time to be retained by a clock signal.
  • the first and second bistable retention circuits (310 and 312, respectively) can output a logical value when triggered by by means of a clock signal, and then maintain its stored value for reception by a subsequent circuit, until a new value is presented to the bistable retention circuits with sufficient set-up and standby time to be retained by means of a clock signal.
  • the bistable retention circuits (3 10 and 312) are triggered by the rising and falling edges of a clock signal (or vice versa), such as those generated by frequency controllers 142-1 to 142- N of Figure 1.
  • a clock signal or vice versa
  • the clock signal edges 318 and 320 may be used to synchronize storage units 310 and 312.
  • edges 318 and 320 may be rising and falling edges of the same clock signal, or vice versa.
  • the first storage unit 310 stores the output of the processing logic 304 and provides the output to a subsequent stage of dedicated communication channel, such that the subsequent stage of dedicated communication channel can process or process speculatively the output of the treatment logic 304.
  • the second storage unit 312 may store the most recent output of the treatment logic 304, which, in some embodiments, may correspond to the correct or expected output (for example, the output of worst case delay).
  • the error detection logic 314 can compare the values stored in the first storage unit 310 and in the second storage unit 312, in order to detect the occurrence of an error at the output of step 300 of dedicated communication channel
  • the error detection logic 314 can also provide an error signal to the selection logic 308. Accordingly, as long as no error is detected at the output of the dedicated communication channel stage, the selection logic 308 provides the output. from the processing logic 304 to the first storage unit 310. However, if an error is detected in the output of the dedicated communication channel stage 300, the selection logic 308 supplies the value stored in the second storage unit 312 to the first storage unit 310, in one embodiment.
  • the error detection logic 3 14 can provide its generated error signal to the emission queue 138 (which may be one of the emission queues 138-1 to 138-N of the Figure one ).
  • This emission queue 138 may include a repetition logic 322, which causes a re-execution of one or more corresponding consumer instructions, if the speculative output is different from the expected output.
  • the error detection logic 314 can provide its generated error signal to the frequency controller 142 (which may be one of the frequency controllers 142-1 to 142-N of Figure 1), in order to allow the controller frequency 142 determine the timing sequence error within the clock domain (as explained in relation to operation 204 of Figure T).
  • a processor that includes the dedicated communication channel stage 300 can take advantage of the delay in the usual case, retaining values speculatively.
  • the worst case conditions are present, the errors are detected and it is possible to re-carry out one or more of the consumers (since the consumers have been issued based on the delay of the usual case), in order to Provide a correct result.
  • the number of errors is above a threshold value (as set forth in relation to operation 206 of Figure T)
  • the frequency of the given domain can be reduced.
  • Figure 4 illustrates a flow chart of a method 400 for determining, according to one embodiment, whether one or more consumers of a speculatively executed instruction are to be carried out again.
  • the operations of method 400 may be carried out by one or more components of a processor, such as the components that have been set forth with reference to Figures 1 -3.
  • error detection logic 314 may compare a speculative output of a dedicated communication channel stage (for example, a value stored in the storage unit 310) with an expected output from the dedicated communication channel stage (for example, a value stored in storage unit 312), in operation 402. If there is a match (in operation 404), method 400 may resume operation 402 to compare the following values. Otherwise, the error detection logic 314 can generate, in operation 406, an error (which can be communicated to the frequency controller 142 and / or the emission queue 138). In operation 408, the emission queue 138 (and, in one embodiment, the repetition logic 322) can reissue one or more consumers of the instruction corresponding to the error.
  • the emission queue 138 can issue an instruction for its realization, by the corresponding execution unit (for example, one of the units 146-1 to 146-N), when all the operators of the source are ready
  • the emission queue 138 store that instruction for a selected number of cycles, in the event that the instruction producing the sources is carried out incorrectly (for example, when the error detection logic 3 14 generates a error for the instruction in one of the stages of the execution unit).
  • the repetition logic 322 can generate a signal to request the re-execution of all instructions that depend on the instruction that generated the error (consumers). Therefore, in one embodiment, once they have been used, the instructions are kept in broadcast queue 138 until all their respective sources are guaranteed to be correct.
  • FIG. 5 illustrates a block diagram of a computing system 500 according to an embodiment of the invention.
  • the computing system 500 may include one or more central processing units (CPUs- "central processing unit (s)") 502 or processors connected to an interconnection network (or bus) 504.
  • the processors 502 may consist of any suitable processor , such as a general purpose processor, a network processor (which processes the data communicated through a computer network 503), or the like (including a reduced instruction set computer processor (RISC) ") or a complex instruction set computer (CISC)."
  • RISC reduced instruction set computer processor
  • CISC complex instruction set computer
  • 502 processors can have a single or multiple core design.
  • the 502 processor with a multi-core design can integrate different types of processor cores in the same integrated circuit fragment (IC - "integrated circuit"). Also, 502 processors with a multi-core design can be realized in practice as symmetric or asymmetric multiple processors. In one embodiment, one or more of the processors 502 may use the embodiments explained with reference to Figures 1-4. For example, one or more of the processors 502 may include one or more cores with multiple clock domains, as well as frequency controllers and / or independent variation sensors. Also, the operations explained in relation to Figures 1-4 can be performed by one or more of the components of the system 500.
  • a chipset 506 may also have been coupled to the interconnect network 504.
  • the chipset 506 may include a memory control block (MCH) 508.
  • the MHC 508 may include a memory controller 510 which is coupled to a memory 512.
  • Memory 512 is capable of storing data in sequence of instructions that are executed by the CPU 502 or by any other device included in the computing system 500.
  • memory 512 may include one or more volatile storage devices (or memory), such as random access memory (RAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or the like .
  • RAM random access memory
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • SRAM static RAM
  • a non-volatile memory such as a hard disk, can also be used. It is possible to couple additional devices to the interconnection network 504, such as multiple CPUs and / or multiple system memories.
  • the MCH 508 may also include a graphics interface 514, coupled to a graphics accelerator device 516.
  • the graphics interface 514 can be coupled to the graphics accelerator device 516 through an accelerated graphics door ( AGP - "accelerated graphics port").
  • a visual display device (such as a flat panel visual display device) may have been coupled to the graphics interface 514 through, for example, a signal converter that translates a digital representation of an image stored in a storage device, such as a video memory or a system memory, to visual presentation signals that are interpreted and presented visually by the visual presentation device.
  • the visual presentation signals produced by the visual presentation device may pass through several control devices before being interpreted by the visual presentation device and subsequently presented visually by it.
  • a 518 block interface can couple the MCH 508 with an input / output control block (ICH - 520).
  • the ICH 520 can provide an interface to the input / output devices (I / O). ) coupled to the computing system 500.
  • the ICH 520 can be coupled to a bus 522 via a peripheral bridge (or controller) 524, such as a peripheral component interconnect bridge (PCI). , a universal serial bus controller (USB - "universal serial bus”), or the like.
  • the bridge 524 can provide a path or path for the data between the CPU 502 and the peripheral devices. It is possible to use other types of topologies. Also, multiple buses can be coupled to the ICH 520, for example, through multiple bridges or controllers.
  • peripherals that are coupled to the ICH 520 may include, in various embodiments of the invention, integrated drive electronic device (s) (IDE) or device (s) of hard disk drive for interfaces of small computer systems (SCSI - "small computer system interface"), USB access (s) or door (s), a keyboard, a mouse, parallel door (s), door (s) ) in series, flexible disk drive device (s), digital output support device (s) (eg, digital video interface (DVI - "digital video interface”)), or the like.
  • IDE integrated drive electronic device
  • SCSI - "small computer system interface” small computer systems
  • USB access s
  • door a keyboard
  • a mouse parallel door
  • flexible disk drive device s
  • digital output support device eg, digital video interface (DVI - "digital video interface"
  • the 522 bus can be coupled to an audio device
  • the graphics accelerator device 516 can be arranged included within the MCH 508 in other embodiments of the invention.
  • non-volatile memory may include one or more of the following: read-only memory (ROM - "read only memory”), programmable ROM (PROM - “programmable ROM”), erasable PROM (EPROM - “erasable PROM “), programmable and electrically erasable ROM (EEPROM -” electrically EPROM “), a hard disk drive (for example, 528), a flexible disk, a compact disk ROM (CD-ROM), a digital versatile disk (DVD - "digital versatile disk”), an impulse registration memory, a magneto-optical disk or other types of non-volatile media that can be read by the machine that are suitable for the storage of instructions and / or electronic data.
  • Figure 6 illustrates a computing system 600 that has been arranged in a point-to-point configuration (PtP - "point-to-point"), in accordance with an embodiment of the invention.
  • Figure 6 shows a system in which processors, memory and input / output devices are interconnected, through a certain number of point-to-point interfaces.
  • the operations explained with reference to Figures 1-5 may be carried out by one or more of the components of the system 600.
  • the system 600 may include several processors, of which are shown only two processors, 602 and 604, for the sake of clarity.
  • the processors 602 and 604 can each include a local memory controller block (MCH - "memory controller hub") 606 and 608, in order to be coupled to memories 610 and 612.
  • MCH local memory controller block
  • Memories 610 and / or 61 2 are capable of storing various data, such as those exposed with reference to memory 512.
  • Processors 602 and 604 may consist of any suitable processor, such as those set forth with reference to processors 502 of Figure 5.
  • Processors 602 and 604 can exchange data through a point-to-point (PtP) interface , using PtP 616 and 618 interface circuits, respectively.
  • Processors 602 and 604 can each exchange data with a chipset 620 through individual PtP interfaces 622 and 624, using point-to-point interface circuits 626, 628, 630 and 632.
  • the set of chips 620 can also exchange data with a high performance graphics circuit 634, through a high performance graphics interface 636, with the use of a PtP 637 interface circuit.
  • one or more of the clock domains exposed with reference to Figure 1 can be located within processors 602 and 604.
  • other embodiments of the invention can be distributed through various circuits, logical units or devices illustrated in the Figure 6.
  • Chipset 620 may be coupled to a bus 640 with the use of a PtP 641 interface circuit.
  • Bus 640 has one or more devices coupled to it, such as a bus bridge 642 and input devices. / output (I / O) 643.
  • the bus bridge 643 can be coupled, via a bus 644, to other devices, such as a keyboard / mouse 645, communication devices 646 (such as modems, interface devices). network or the like, which may be coupled to the computer network 503), an audio input / output device, and / or a data storage device 648.
  • the data storage device 648 can store a code 649 that can be carried out or executed by the processors 602 and / or 604.
  • FIG. 7 illustrates a block diagram of a computing system 700 in accordance with one embodiment.
  • the computing system 700 may include one or more domains 702-1 to 702-M.
  • Each of domains 702-1 to 702-M may include several components, although, for the sake of clarity, only sample components are illustrated with reference to domain 702-1.
  • each domain may include one or more sensors 704, a controller of frequency 706 and logic 708.
  • Sensors 704 can detect variations (such as those set forth with reference to Figure 1) within the corresponding domain.
  • the sensors 704 may be coupled to one or more components of the corresponding group or cluster (for example, logic 708 within domain 702-1).
  • Frequency controller 706 may be coupled to sensors 704 and logic 708, and use detected variations and / or errors in timing regulation to adjust the frequency of the clock signal that is used for the corresponding clock domain , as explained in relation to Figures 1-4. Therefore, it is possible to temporarily regulate by means of a clock signal various components of logic 708, by means of a clock signal that is generated (or adjusted in frequency) by the frequency controller 706.
  • each of the domains 702-1 to 702-M may include one or more intermediate storage registers 148 with FIFO structure, in order to synchronize communication between the various clock domains (as set forth in relation to Figure 1).
  • Logic 708 can provide adequate functional computing capacity, such as data processing, data storage, data communication, or the like.
  • the computing system 700 can be provided in the form of any suitable computing device, such as a personal digital assistant (PDA), a mobile phone, a laptop, a desktop computer, a server computer (including a server that uses modules in leaf structure, also called “leaf server”), a workstation, or the like.
  • PDA personal digital assistant
  • the computing system 700 may include one or more components of the systems 500, of Figure 5, and / or 600, of Figure 6, in various embodiments.
  • the operations explained herein, for example, with reference to Figures 1-7 can be implemented as physical devices or hardware (eg, logic circuits), programming or software, programming installed in a manner fixed in the hardware, or combinations thereof, which can be provided in the form of a computer program product, for example, that includes a machine-readable medium or readable by a computer and stored in the same instructions (or programming procedures) that are used to program a computer to carry out a procedure described here.
  • the machine-readable medium may include any suitable storage device, such as those explained with respect to Figures 1-7.
  • said computer-readable medium can be downloaded as a computer program product, such that the program can be transferred from a remote computer (for example, a server) to a requesting computer (for example, a client) through data signals incorporated into a carrier wave or other propagation medium, through a communication link (for example, a modem or network connection). Consequently, it will be understood here that a carrier wave comprises a machine-readable medium.
  • Coupled can be used to indicate that two or more elements are in direct physical or electrical contact with one another.
  • Connected can be used to indicate that two or more elements are in direct physical or electrical contact with one another.
  • Coupled may mean that two or more elements are in direct physical or electrical contact.
  • coupled may also mean that two or more elements may not be in direct contact with one another, but may still cooperate or interact with one another.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

Se describe métodos y aparatos para proporcionar una arquitectura en grupo o racimo que percibe las variaciones. En una realización se detectan las una o más variaciones dentro de un dominio de reloj y se utilizan para ajustar una señal de reloj del dominio de reloj.

Description

ARQUITECTURA EN RACIMO QUE PERCIBE LAS VARIACIONES
ANTECEDENTES La presente descripción se refiere generalmente al campo de la electrónica. Más en particular, una realización de la invención se refiere a una arquitectura en grupo o racimo, que percibe las variaciones.
Típicamente, se establece una frecuencia de reloj de un procesador de acuerdo con el retardo del recorrido o camino crítico (el peor de los casos), más unos márgenes de seguridad debidos a la magnitud del procedimiento (P) de fabricación de los semiconductores, de la tensión de funcionamiento (V), de la temperatura (T) y de las variaciones (PVTI) en los vectores o valores (I) de entrada. En general, las variaciones relacionadas con la PVTI se incrementan con el factor de escala de la tecnología y, como secuencia de ello, los márgenes de seguridad se están convirtiendo en una componente más dominante a la hora de determinar un reloj de un procesador.
También, a medida que crece la magnitud de las variaciones de PVTI, los márgenes de seguridad pueden tener un impacto creciente en el rendimiento de un procesador. En primer lugar, la verificación del circuito puede resultar más compleja, puesto que las variaciones pueden transformar caminos no críticos en un camino crítico. En segundo lugar, la frecuencia del reloj puede tener que ajustarse en valores inferiores para garantizar la corrección de los resultados del procesamiento o tratamiento, lo que puede tener una repercusión en los costes. Por ejemplo, puede ser necesario desechar las partes con un rendimiento bajo, lo cual puede incrementar los costes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La descripción detallada se proporciona con referencia a las figuras que se acompañan. En las figuras, el dígito o dígitos situado(s) más a la izquierda de un cierto número de referencia identifican la figura en la que aparece por primera vez el número de referencia. El uso de los mismos números de referencia en diferentes figuras indica elementos similares o idénticos.
La Figura 1 ilustra un diagrama de bloques de una arquitectura en grupo o racimo de acuerdo con una realización.
La Figura 2 ilustra un diagrama de flujo de un método para ajustar una señal de reloj de un dominio de reloj en respuesta a las una o más variaciones, de acuerdo con una realización. La Figura 3 ilustra un diagrama de bloques de una etapa de canal de comunicación dedicado o exclusivo de un procesador, de acuerdo con una realización.
La Figura 4 ilustra un diagrama de flujo de un método para determinar si volver a llevar a cabo o no uno o más consumidores de una instrucción realizada especulativamente, de acuerdo con una realización. Las Figuras 5 y 6 ilustran diagramas de bloques de sistemas de computación de acuerdo con varias realizaciones de la invención.
La Figura 7 ilustra un diagrama de bloques de un sistema de computación, de acuerdo con una realización.
DESCRIPCIÓN DETALLADA
En la siguiente descripción se exponen numerosos detalles específicos con el fin de proporcionar una comprensión exhaustiva de diversas realizaciones. Sin embargo, varias realizaciones de la invención pueden llevarse a la práctica sin los detalles específicos. En otros casos, no se han descrito en detalle métodos, procedimientos, componentes y circuitos bien conocidos, al objeto de no entorpecer la comprensión de las realizaciones particulares de la invención.
Algunas de las realizaciones que se explican aquí son capaces de proporcionar una arquitectura en grupo o racimo (por ejemplo, una arquitectura con múltiples dominios de reloj) que percibe una o más variaciones de PVTI, tal como las arquitecturas que se exponen haciendo referencia a las Figuras 1 -7. Más concretamente, la
Figura 1 ilustra un diagrama de bloques de una arquitectura en racimo 100 de acuerdo con una realización. En una realización, la arquitectura
100 puede representar componentes lógicos dentro de un procesador o de un cierto número de procesadores (tales como los que se han expuesto con referencia a las Figuras 5 y 6). La arquitectura 100 puede incluir uno o más dominios, tales como un dominio de caché 100 de segundo nivel, un dominio 104 de terminal frontal o anterior, y uno o más dominios de terminal posterior 106, cuyas frecuencias de reloj pueden ajustarse en respuesta a las variaciones detectadas basándose en datos de sensor y/o en el número de errores detectados en el dominio de reloj dado. Esto puede reducir las variaciones por racimo (o por dominio de reloj). Las variaciones pueden consistir en una o más de las variaciones en el procedimiento de fabricación de un semiconductor, en la variación de la tensión de funcionamiento, en la variación de la temperatura y/o en la variación en el vector o valor de entrada. Asimismo, cada uno de los dominios (por ejemplo, los 102, 104 y 106) pueden incluir, en diversas realizaciones, más o menos componentes que los que se muestran en la Figura 1.
El dominio de caché de segundo nivel (L2) 102 puede incluir una memoria caché de L2 108 (por ejemplo, para almacenar instrucciones que incluyen datos), uno o más sensores de L2 1 10, y un controlador de frecuencia de L2 1 12. Los sensores de L2 1 10 pueden corresponder a uno o más componentes del dominio de caché de L2 102 (por ejemplo, la memoria caché de L2 108) para detectar una o más variaciones dentro del dominio 102. Como se muestra en la Figura 1 , los sensores de L2 1 10 están acoplados al controlador de frecuencia de L2 1 12 para informar al controlador de frecuencia de L2 1 12 de cualesquiera variaciones presentes en el dominio de caché de L2 102. Las variaciones pueden detectarse también basándose en el número de errores detectados dentro del dominio de caché de L2 102. El controlador de frecuencia de L2 1 12 puede utilizar las variaciones detectadas para ajustar una señal de reloj para los componentes del dominio de caché de L2 102. Por lo tanto, el controlador de frecuencia de L2 1 12 puede habilitar a los componentes del dominio de caché de L2 102 para que se ajusten a las variaciones cambiantes. En una realización, la memoria caché de L2 108 puede ser compartida por una pluralidad de núcleos de un procesador de múltiples núcleos, tal como los que se exponen con referencia a las Figuras 5 y 6. También, la memoria caché de L2 108 puede haberse sacado de la misma oblea o fragmento que los núcleos de procesador. En consecuencia, en diversas realizaciones de la invención, un procesador puede incluir los dominios 104 y 106, y puede incluir o no la memoria caché de L2 108.
Como se muestra en la Figura 1 , el dominio de terminal frontal o anterior 104 puede incluir uno o más sensores 1 14 de terminal anterior, un controlador de frecuencia 1 16 de terminal anterior, un registro de almacenamiento intermedio para reordenación 1 18, una unidad de redenominación y encaminamiento 120, una memoria caché de seguimiento 122, una unidad de descodificación 124, un dispositivo de secuenciación 126 y/o una unidad de predicción de rama 128. En una realización, el dominio de terminal anterior 104 puede incluir otros componentes, tales como una unidad de recuperación y carga de instrucciones, o similar. Los sensores de terminal anterior 1 14 pueden corresponder a uno o más componentes del dominio de terminal anterior 104 con el fin de detectar una o más variaciones dentro del dominio de extremo anterior 104. Los sensores 1 14 están acoplados al controlador de frecuencia 1 16 con el fin de informar al controlador de frecuencia 1 14 de cualesquiera variaciones que se presenten en el dominio de terminal anterior 104. Las variaciones pueden ser detectadas también basándose en el número de errores detectados dentro del dominio de terminal anterior 104. El controlador de frecuencia 1 16 de terminal anterior puede servirse de las variaciones detectadas para ajustar una señal de reloj para los componentes del dominio de terminal anterior 104. En consecuencia, el controlador de frecuencia 1 16 puede habilitar a los componentes del dominio de terminal anterior 104 para que se adapten a las variaciones cambiantes.
Los dominios de terminal posterior 106 pueden incluir uno o más de entre un dominio de caché de primer nivel (L l ) 128 y uno o más dominios de ejecución 130- 1 a 130-N. El dominio de caché de L2 128 puede incluir una memoria caché de L l 132 (por ejemplo, con el fin de almacenar datos que incluyen instrucciones), uno o más sensores de L l 134, y un controlador de frecuencia de L l 136. Los sensores de L l 134 pueden corresponder a uno o más componentes del dominio de caché de L l 128 (por ejemplo, la memoria caché de L l 132), a fin de detectar una o más variaciones dentro del dominio 128. Como se muestra en la Figura 1 , los sensores de L l 134 están acoplados al controlador de frecuencia de L l 136 para informar al controlador de frecuencia 136 de cualesquiera variaciones presentes en el dominio de caché de L l 128. Las variaciones pueden detectarse también basándose en el número de errores detectados dentro del dominio de caché de L l 128. El controlador de frecuencia de L l 136 puede utilizar las variaciones detectadas para ajustar una señal de reloj para los componentes del dominio de caché de L l 128. En consecuencia, el controlador de frecuencia de L l 136 puede habilitar a los componentes del dominio de caché de Ll 128 para que se adapten a las variaciones cambiantes.
Los dominios de ejecución 130- 1 a 130-N pueden consistir en cualquier unidad de ejecución o realización adecuada, tal como una unidad de ejecución de enteros y/o una unidad de ejecución de coma flotante. Los dominios de ejecución 130- 1 a 130-N pueden comprender, cada uno de ellos, una cola de emisión ( 138- 1 a 138-N, respectivamente), un archivo de registros ( 140- 1 a 140-N, respectivamente), un controlador de frecuencia de dominio de ejecución ( 142- 1 a 142-N, respectivamente), uno o más sensores de dominio de ejecución ( 144- 1 a 144-N, respectivamente), y/o una unidad de ejecución ( 146- 1 a 146-N, respectivamente).
En una realización, cada uno de los dominios 102, 104 y 106 puede incluir uno o más registro(s) de almacenamiento intermedio de estructura de "primero en entrar-primero en salir" (FIFO -"first-in, first- out") 148, con el fin de sincronizar la comunicación entre los diversos dominios de reloj (por ejemplo, entre los dominios 102, 104 y/ó 106). En una realización, los registros de almacenamiento intermedio FIFO 148 pueden regularse temporalmente por medio de señal de reloj, utilizando el reloj del dominio de recepción (por ejemplo, el reloj que es generado por el respectivo controlador de frecuencia).
La arquitectura 100 (y, en una realización, tal como la que se muestra en la Figura 1 , los dominios de terminal posterior 106) puede incluir una interconexión o bus 150 para facilitar la comunicación entre los diversos componentes de la arquitectura 100. Por ejemplo, una vez que se ha ejecutado con éxito una instrucción (por ejemplo, por parte de los dominios de ejecución 130- 1 a 130-N), la orden o exhortación de la instrucción puede ser comunicada al ROB 1 18 (por ejemplo, a través de la interconexión 150) para retirar esa instrucción. De manera adicional, los dominios situados dentro del terminal posterior (por ejemplo, los dominios 128 y 130- 1 a 130-N) pueden comunicarse a través de la interconexión 150. Por ejemplo, puede producirse una comunicación entre unidades de ejecución ( 130- 1 a 130-N) para las instrucciones de conversión de tipo.
La Figura 2 ilustra un diagrama de flujo de un método 200 para ajustar una señal de reloj de un dominio de reloj en respuesta a las una o más variaciones, de acuerdo con una realización. En una realización, las operaciones del método 200 pueden llevarse a cabo por medio de uno o más componentes de un procesador, tales como los componentes expuestos con referencia a la Figura 1 .
Haciendo referencia a las Figuras 1 -2, uno o más sensores (por ejemplo, los sensores 1 10, 1 14, 136 y/ó 144- 1 a 144-N) pueden detectar variaciones (tales como las variaciones explicadas en relación con la Figura 1 ) dentro de un dominio de reloj (por ejemplo, los dominios 102, 104 y/ó 106), en la operación 202. Estos sensores pueden consistir en uno o más sensores de temperatura, sondas de debilitamiento de la tensión, y/o osciladores de anillo. En la operación 204, un controlador de frecuencia (tal como los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N) pueden detectar uno o más errores en la regulación de la secuencia temporal dentro del dominio de reloj (por ejemplo, los dominios 102, 104 ó 106, respectivamente), como se explicará adicionalmente con referencia a las Figuras 3 y 4. En una realización, las operaciones 202 y 204 pueden llevarse a cabo simultáneamente. Además, en una realización, cada uno de los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N puede incluir un contador de errores (por ejemplo, para contar el número de errores detectados dentro de un dominio de reloj correspondiente) y un contador de ciclos (no mostrado). Puede utilizarse cualquier mecanismo de almacenamiento adecuado para realizar en la práctica el contador de errores y el contador de ciclos, tal como un registro de soporte físico o hardware, y/o una variable almacenada en una memoria compartida (por ejemplo, la memoria caché de L2 108 y/o la memoria caché de Ll 132). Los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N pueden también tener acceso a un valor de umbral que puede indicar el número de errores permisibles para un dominio dado (expresado, por ejemplo, como un porcentaje de los errores de regulación de la secuencia temporal). El valor de umbral puede ser almacenado en cualquier mecanismo de almacenamiento adecuado, tal como un registro de soporte físico y/o una variable almacenada en una memoria compartida (por ejemplo, la memoria caché de L2 108 y/o la memoria caché de Ll 132). También, el valor de umbral puede ser programable en una realización.
Basándose en la comparación de los valores del contador de errores y del contador de ciclos con respecto al valor de umbral (en la operación 206) y/o las variaciones detectadas (en la operación 202), los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N pueden generar una señal de reloj para sus respectivos componentes de dominio, la cual es ajustada (208) de acuerdo con las variaciones detectadas en un dominio respectivo (por ejemplo, en los dominios 102, 104 ó 106, respectivamente). Por ejemplo, los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N pueden incrementar la frecuencia de su pulso de reloj generado si el error de regulación de la secuencia temporal dentro del dominio de reloj respectivo (por ejemplo, los dominios 102, 104 ó 106, respectivamente) es más bajo que el valor de umbral (206). Y a la inversa, los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N pueden reducir la frecuencia de su pulso de reloj generado en el caso de que el error en la regulación de la secuencia temporal dentro del respectivo dominio de reloj (por ejemplo, los dominios 102, 104 ó 106, respectivamente) exceda del valor de umbral (206). Tras la operación 208, el método 200 puede retomar las operaciones 202 y 204 para continuar detectando variaciones dentro del dominio de reloj.
De acuerdo con ello, en una realización, cada dominio (por ejemplo, los dominios 102, 104 y 106) puede estar marchando a una frecuencia de reloj que puede ser diferente de la frecuencia de reloj de los otros dominios. Esto puede permitir que cada dominio se adapte a las variaciones cambiantes que se producen a lo largo de la vida de un producto, por ejemplo, para mitigar el problema de envejecimiento asociado a los dispositivos semiconductores, y/o reducir los costes de verificación. Esto puede reducir, también, el impacto de las variaciones dentro de un mismo fragmento y puede mejorar el rendimiento, al adaptar la frecuencia de cada dominio a las variaciones dinámicas que puede experimentar ese dominio. Por otra parte, cada dominio puede tener una sensibilidad diferente a los diversos errores; así pues, un controlador de frecuencia diferente para cada dominio puede optimizar el rendimiento global de una arquitectura ( 100). Además, en una realización, los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142- N pueden generar su pulso de reloj basándose en una misma señal de reloj de referencia. Por ejemplo, los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N pueden ajustar la frecuencia de un reloj de referencia (por ejemplo, un reloj extensivo a todo el sistema), en una realización. En consecuencia, los dominios ( 102- 106) pueden ser dependientes de una señal de reloj de referencia. Alternativamente, es posible utilizar diferentes relojes de referencia por parte de los controladores de frecuencia 1 12, 1 16, 136 y 142- 1 a 142-N, con el fin de generar su respectivo pulso de reloj de dominio.
La Figura 3 ilustra un diagrama de bloques de una etapa 300 de canal de comunicación dedicado o exclusivo de un procesador, de acuerdo con una realización. La etapa 300 de canal de comunicación dedicado puede utilizarse para llevar a cabo instrucciones de manera especulativa, por ejemplo, para incrementar el rendimiento y/o reducir la latencia. En una realización, cada una de las actuaciones 146- 1 a 146-N de la Figura 1 puede incluir una o más de las etapas 300 de canal de comunicación dedicado. La etapa 300 de canal de comunicación dedicado puede incluir una lógica de entrada 302, una lógica de tratamiento 304 y una lógica de comparación 306. La lógica de comparación 306 puede incluir adicionalmente una lógica de selección 308 (que puede ser un multiplexador en una realización), una primera unidad de almacenamiento 310, una segunda unidad de almacenamiento 312 y una lógica 314 de detección de errores.
La lógica de entrada 302 puede recibir datos de entrada (incluyendo instrucciones) que han de ser procesados o tratados por la lógica de tratamiento 304, y los valores de salida producidos por la lógica de tratamiento pueden ser almacenados en la primera unidad de almacenamiento 310, a través de una lógica de selección 308, y en la segunda unidad de almacenamiento 3 12. En una realización de la invención, la primera unidad de almacenamiento 310 y la segunda unidad de almacenamiento 312 son circuitos biestables de retención. Además, los primer y segundo circuitos biestables de retención (310 y 312, respectivamente) pueden almacenar un valor lógico presentado en sus entradas con el suficiente tiempo de establecimiento y tiempo de espera como para ser retenido por una señal de reloj. Por otra parte, los primer y segundo circuitos biestables de retención (310 y 312, respectivamente) pueden suministrar como salida un valor lógico cuando se disparan por medio de una señal de reloj, y mantener, tras ello, su valor almacenado para su recepción por parte de un circuito subsiguiente, hasta que es presentado un nuevo valor a los circuitos biestables de retención con el suficiente tiempo de establecimiento y de espera como para ser retenido por medio de una señal de reloj.
En una realización, los circuitos biestables de retención (3 10 y 312) son disparados por los bordes de subida y de caída de una señal de reloj (o viceversa), tales como los generados por los controladores de frecuencia 142- 1 a 142-N de la Figura 1. Por ejemplo, como se muestra en la Figura 3, los bordes de señal de reloj 318 y 320 pueden ser utilizados para sincronizar las unidades de almacenamiento 310 y 312. Por ejemplo, los bordes 318 y 320 pueden ser los bordes de subida y de caída de la misma señal de reloj, o viceversa.
En una realización, la primera unidad de almacenamiento 310 almacena la salida de la lógica de tratamiento 304 y proporciona la salida a una etapa subsiguiente de canal de comunicación dedicado, de tal manera que la etapa subsiguiente de canal de comunicación dedicado puede procesar o tratar especulativamente la salida de la lógica de tratamiento 304. La segunda unidad de almacenamiento 312 puede almacenar la salida más reciente de la lógica de tratamiento 304, la cual, en algunas realizaciones, puede corresponder a la salida correcta o esperada (por ejemplo, la salida de retardo del peor de los casos).
Por otra parte, la lógica 314 de detección de errores puede comparar los valores almacenados en la primera unidad de almacenamiento 310 y en la segunda unidad de almacenamiento 312, con el fin de detectar la aparición de un error en la salida de la etapa 300 de canal de comunicación dedicado. La lógica 314 de detección de errores puede también proporcionar una señal de error a la lógica de selección 308. En consecuencia, mientras no sea detectado ningún error en la salida de la etapa de canal de comunicación dedicado, la lógica de selección 308 proporciona la salida de la lógica de tratamiento 304 a la primera unidad de almacenamiento 310. Sin embargo, si se detecta un error en la salida de la etapa 300 de canal de comunicación dedicado, la lógica de selección 308 suministra el valor almacenado en la segunda unidad de almacenamiento 312 a la primera unidad de almacenamiento 310, en una realización. Como se muestra en la Figura 3, la lógica 3 14 de detección de errores puede proporcionar su señal de error generada a la cola de emisión 138 (la cual puede ser una de las colas de emisión 138- 1 a 138-N de la Figura 1 ). Esta cola de emisión 138 puede incluir una lógica de repetición 322, que provoque una nueva ejecución de una o más instrucciones de consumidor correspondientes, si la salida especulativa es diferente de la salida esperada. Asimismo, la lógica 314 de detección de errores puede proporcionar su señal de error generada al controlador de frecuencia 142 (que puede ser uno de los controladores de frecuencia 142- 1 a 142-N de la Figura 1 ), a fin de permitir al controlador de frecuencia 142 determinar el error de regulación de la secuencia temporal dentro del dominio de reloj (tal y como se ha explicado en relación con la operación 204 de la Figura T).
En una realización, un procesador que incluye la etapa 300 de canal de comunicación dedicado puede sacar partido del retardo en el caso habitual, reteniendo valores especulativamente. Cuando se presentan las condiciones del peor de los casos, los errores son detectados y es posible volver a llevar a cabo uno o más de los consumidores (puesto que los consumidores se han emitido basándose en el retardo del caso habitual), con el fin de proporcionar un resultado correcto. Cuando el número de errores se encuentra por encima de un valor de umbral (tal y como se ha expuesto en relación con la operación 206 de la Figura T), la frecuencia del dominio dado puede ser reducida.
La Figura 4 ilustra un diagrama de flujo de un método 400 para determinar, de acuerdo con una realización, si se han de llevar de nuevo a cabo uno o más consumidores de una instrucción ejecutada especulativamente. En una realización, las operaciones del método 400 pueden ser llevadas a cabo por uno o más componentes de un procesador, tales como los componentes que se han expuesto con referencia a las Figuras 1 -3.
Haciendo referencia a las Figuras 1 -4, la lógica 314 de detección de errores puede comparar una salida especulativa de una etapa de canal de comunicación dedicado (por ejemplo, un valor almacenado en la unidad de almacenamiento 310) con una salida esperada procedente de la etapa de canal de comunicación dedicado (por ejemplo, un valor almacenado en la unidad de almacenamiento 312), en la operación 402. Si existe coincidencia (en la operación 404), el método 400 puede retomar la operación 402 para comparar los siguientes valores. En caso contrario, la lógica 314 de detección de errores puede generar, en la operación 406, un error (que puede ser comunicado al controlador de frecuencia 142 y/o a la cola de emisión 138). En la operación 408, la cola de emisión 138 (y, en una realización, la lógica de repetición 322) puede volver a emitir uno o más consumidores de la instrucción que corresponde al error.
En una realización, la cola de emisión 138 puede emitir una instrucción para su realización, por parte de la correspondiente unidad de ejecución (por ejemplo, una de las unidades 146- 1 a 146-N), cuando todos los operadores de la fuente están listos. En una realización, la cola de emisión 138 guardar esa instrucción durante un número de ciclos seleccionado, en el caso de que la instrucción que produce las fuentes se lleve a cabo incorrectamente (por ejemplo, cuando la lógica 3 14 de detección de errores genera un error para la instrucción en una de las etapas de la unidad de ejecución). Además, la lógica de repetición 322 puede generar una señal para solicitar la reejecución de todas las instrucciones que dependen de la instrucción que ha generado el error (consumidores). Por lo tanto, en una realización, una vez que se han utilizado, las instrucciones se guardan en la cola de emisión 138 hasta que se garantiza que todas sus fuentes respectivas son correctas.
La Figura 5 ilustra un diagrama de bloques de un sistema de computación 500 de acuerdo con una realización de la invención. El sistema de computación 500 puede incluir una o más unidades centrales de procesamiento (CPUs- "central processing unit(s)") 502 ó procesadores conectados a una red de interconexión (o bus) 504. Los procesadores 502 pueden consistir en cualquier procesador adecuado, tal como un procesador de propósito general, un procesador de red (que trata los datos comunicados a través de una red 503 de computadoras), o similar (incluyendo un procesador de computadora de conjunto de instrucciones reducido (RISC -"reduced instruction set computer") o una computadora de conjunto de instrucciones complejo (CISC -"complex instruction set computer")). Además, los procesadores 502 pueden tener un diseño de núcleo único o múltiple.
El procesador 502 con un diseño de núcleo múltiple puede integrar diferentes tipos de núcleos de procesador en el mismo fragmento de circuito integrado (IC -"integrated circuit"). También, los procesadores 502 con un diseño de núcleo múltiple pueden realizarse en la práctica como procesadores múltiples simétricos o asimétricos. En una realización, uno o más de los procesadores 502 pueden utilizar las realizaciones que se han explicado con referencia a las Figuras 1 -4. Por ejemplo, uno o más de los procesadores 502 pueden incluir uno o más núcleos con dominios de reloj múltiples, así como controladores de frecuencia y/o sensores de variación independientes. Asimismo, las operaciones explicadas en relación con las Figuras 1 -4 pueden ser realizadas por uno o más de los componentes del sistema 500.
Puede haberse acoplado también un conjunto de chips 506 a la red de interconexión 504. El conjunto de chips 506 puede incluir un bloque de control de memoria (MCH -"memory control hub") 508. El MHC 508 puede incluir un controlador de memoria 510 que está acoplado a una memoria 512. La memoria 512 es capaz de almacenar datos en secuencias de instrucciones que son ejecutadas por la CPU 502 ó por cualquier otro dispositivo incluido en el sistema de computación 500. En una realización de la invención, la memoria 512 puede incluir uno o más dispositivos de almacenamiento volátiles (o memoria), tales como memoria de acceso aleatorio (RAM -"random access memory"), RAM dinámica (DRAM), DRAM sincrónica (SDRAM), RAM estática (SRAM), o similares. Puede también utilizarse una memoria no volátil, tal como un disco duro. Es posible acoplar dispositivos adicionales a la red de interconexión 504, tales como múltiples CPUs y/o múltiples memorias de sistema.
El MCH 508 puede incluir también una interfaz de gráficos 514, acoplada a un dispositivo acelerador de gráficos 516. En una realización de la invención, la interfaz de gráficos 514 puede acoplarse al dispositivo acelerador de gráficos 516 a través de una puerta de gráficos acelerados (AGP -"accelerated graphics port"). En una realización de la invención, puede haberse acoplado un dispositivo de presentación visual (tal como un dispositivo de presentación visual de panel plano) a la interfaz de gráficos 514 a través de, por ejemplo, un convertidor de señal que traduce una representación digital de una imagen almacenada en un dispositivo de almacenamiento, tal como una memoria de vídeo o una memoria de sistema, a señales de presentación visual que son interpretadas y presentadas visualmente por el dispositivo de presentación visual. Las señales de presentación visual producidas por el dispositivo de presentación visual pueden pasar a través de varios dispositivos de control antes de ser interpretadas por el dispositivo de presentación visual y presentadas visualmente de forma subsiguiente por éste.
Una interfaz 518 de bloques puede acoplar el MCH 508 con un bloque de control de entrada / salida (ICH -"input / output control hub") 520. El ICH 520 puede proporcionar una interfaz a los dispositivos de entrada / salida (I/O) acoplados al sistema de computación 500. La ICH 520 puede estar acoplada a un bus 522 a través de un puente (o controlador) periférico 524, tal como un puente o pasarela de interconexión de componentes periféricos (PCI -"peripheral component interconnect"), un controlador de bus en serie universal (USB - "universal serial bus"), o similar. El puente 524 puede proporcionar un recorrido o camino para los datos entre la CPU 502 y los dispositivos periféricos. Es posible utilizar otros tipos de topologías. Asimismo, pueden acoplarse múltiples buses al ICH 520, por ejemplo, a través de múltiples puentes o controladores. Por otra parte, otros periféricos que se acoplan al ICH 520 pueden incluir, en diversas realizaciones de la invención, dispositivo(s) electrónico(s) de accionamiento integrado(s) (IDE -"integrated drive electronics") o dispositivo(s) de accionamiento de disco duro para interfaces de sistemas informáticos pequeños (SCSI - "small computer system interface"), acceso(s) o puerta(s) de USB, un teclado, un ratón, puerta(s) en paralelo, puerta(s) en serie, dispositivo(s) de accionamiento de disco flexible, dispositivo(s) de soporte de salida digital (por ejemplo, interfaz de vídeo digital (DVI -"digital video interface")), o similares. El bus 522 puede estar acoplado a un dispositivo de audio
526, a uno o más dispositivos 528 de accionamiento de disco duro, y a un dispositivo 530 de interfaz de red (que está acoplado a la red 503 de computadoras). Es posible acoplar otros dispositivos al bus 522. Asimismo, pueden acoplarse diversos componentes (tales como el dispositivo 530 de interfaz de red) al MCH 508 en algunas realizaciones de la invención. Además, el procesador 502 y el MCH 508 pueden combinarse para formar un único chip o circuito integrado. Por otra parte, el dispositivo acelerador de gráficos 516 puede disponerse incluido dentro del MCH 508 en otras realizaciones de la invención.
Por otra parte, el sistema de computación 500 puede incluir memoria (o almacenamiento) volátil y/o no volátil. Por ejemplo, la memoria no volátil puede incluir uno o más de los siguientes: memoria de sólo lectura (ROM -"read only memory"), ROM programable (PROM -"programmable ROM"), PROM susceptible de borrarse (EPROM - "erasable PROM"), ROM programable y susceptible de borrarse eléctricamente (EEPROM -"electrically EPROM"), un dispositivo de accionamiento de disco duro (por ejemplo, el 528), un disco flexible, una ROM de disco compacto (CD-ROM), un disco versátil digital (DVD - "digital versatile disk"), una memoria de inscripción por impulsos, un disco magneto-óptico u otros tipos de medios no volátiles y susceptibles de leerse por la máquina que sean adecuados para el almacenamiento de instrucciones y/o datos electrónicos.
La Figura 6 ilustra un sistema de computación 600 que se ha dispuesto en una configuración de punto a punto (PtP -"point-to-point"), de acuerdo con una realización de la invención. En concreto, la Figura 6 muestra un sistema en el que están interconectados procesadores, memoria y dispositivos de entrada / salida, a través de un cierto número de interfaces de punto a punto. Las operaciones explicadas con referencia a las Figuras 1 -5 pueden llevarse a cabo por uno o más de los componentes del sistema 600. Tal como se ilustra en la Figura 6, el sistema 600 puede incluir varios procesadores, de los cuales se muestran tan solo dos procesadores, 602 y 604, en aras de la claridad. Los procesadores 602 y 604 pueden incluir, cada uno de ellos, un bloque controlador de memoria local (MCH -"memory controller hub") 606 y 608, a fin de acoplarse a unas memorias 610 y 612. Las memorias 610 y/o 61 2 son capaces de almacenar diversos datos, tales como los expuestos con referencia a la memoria 512.
Los procesadores 602 y 604 pueden consistir en cualquier procesador adecuado, tal como los que se han expuesto con referencia a los procesadores 502 de la Figura 5. Los procesadores 602 y 604 pueden intercambiar datos a través de una interfaz de punto a punto (PtP), utilizando circuitos de interfaz de PtP 616 y 618, respectivamente. Los procesadores 602 y 604 pueden intercambiar, cada uno de ellos, datos con un conjunto de chips 620 a través de interfaces de PtP individuales 622 y 624, utilizando circuitos de interfaz de punto a punto 626, 628, 630 y 632. El conjunto de chips 620 puede también intercambiar datos con un circuito de gráficos de alto rendimiento 634, a través de una interfaz de gráficos de alto rendimiento 636, con el uso de un circuito de interfaz de PtP 637.
Es posible proporcionar al menos una realización de la invención dentro de los procesadores 602 y 604. Por ejemplo, puede ubicarse dentro de los procesadores 602 y 604 uno o más de los dominios de reloj expuestos con referencia a la Figura 1. Sin embargo, pueden existir otras realizaciones de la invención en otros circuitos, unidades lógicas o dispositivos dentro del sistema 600 de la Figura 6. Por otra parte, pueden distribuirse otras realizaciones de la invención a través de diversos circuitos, unidades lógicas o dispositivos que se ilustran en la Figura 6.
El conjunto de chips 620 puede estar acoplado a un bus 640 con el uso de un circuito de interfaz de PtP 641. El bus 640 tiene tener, acoplados a él, uno o más dispositivos, tales como un puente de bus 642 y dispositivos de entrada / salida (I/O) 643. El puente de bus 643 puede estar acoplado, a través de un bus 644, a otros dispositivos, tales como un teclado / ratón 645, dispositivos de comunicación 646 (tales como módems, dispositivos de interfaz de red o similares, que pueden estar acoplados a la red 503 de computadoras), un dispositivo de entrada / salida de audio, y/o un dispositivo 648 de almacenamiento de datos. El dispositivo 648 de almacenamiento de datos puede almacenar un código 649 que puede ser llevado a cabo o ejecutado por los procesadores 602 y/o 604. La Figura 7 ilustra un diagrama de bloques de un sistema de computación 700 de acuerdo con una realización. El sistema de computación 700 puede incluir uno o más dominios 702- 1 a 702-M. Cada uno de los dominios 702- 1 a 702-M puede incluir varios componentes, si bien, en aras de la claridad, tan solo se ilustran componentes de muestra con referencia al dominio 702- 1 . Como se ilustra en la Figura 7, cada dominio puede incluir uno o más sensores 704, un controlador de frecuencia 706 y una lógica 708. Los sensores 704 pueden detectar variaciones (tales como las expuestas con referencia a la Figura 1 ) dentro del dominio correspondiente. En una realización, los sensores 704 pueden estar acoplados a uno o más componentes del grupo o racimo correspondiente (por ejemplo, la lógica 708 dentro del dominio 702- 1 ). El controlador de frecuencia 706 puede estar acoplado a los sensores 704 y a la lógica 708, y utilizar variaciones detectadas y/o errores en la regulación de la secuencia temporal para ajustar la frecuencia de la señal de reloj que se utiliza para el dominio de reloj correspondiente, tal y como se ha explicado en relación con las Figuras 1 -4. Por tanto, es posible regular temporalmente mediante señal de reloj diversos componentes de la lógica 708, por medio de una señal de reloj que se genera (o se ajusta en frecuencia) por el controlador de frecuencia 706. En una realización, cada uno de los dominios 702- 1 a 702-M puede incluir uno o más registros de almacenamiento intermedio 148 con estructura de FIFO, al objeto de sincronizar la comunicación entre los diversos dominios de reloj (tal y como se ha expuesto en relación con la Figura 1 ). La lógica 708 puede proporcionar una capacidad funcional de computación adecuada, tal como el tratamiento de los datos, el almacenamiento de los datos, la comunicación de los datos, o similar. En consecuencia, el sistema de computación 700 puede proporcionarse en la forma de cualquier dispositivo de computación adecuado, tal como una asistente digital personal (PDA- "personal digital assistant"), un teléfono móvil, una computadora portátil, una computadora de sobremesa, una computadora de servidor (incluyendo un servidor que utiliza módulos en estructura de hojas, también denominado "servidor en hojas"), una estación de trabajo, o similar. Por otra parte, el sistema de computación 700 puede incluir uno o más componentes de los sistemas 500, de la Figura 5, y/ó 600, de la Figura 6, en diversas realizaciones. En diversas realizaciones de la invención, las operaciones aquí explicadas, por ejemplo, con referencia a las Figuras 1 -7, pueden llevarse a la práctica como dispositivos físicos o hardware (por ejemplo, circuitos lógicos), programación o software, programación instalada de forma fija en el hardware, o bien combinaciones de los mismos, los cuales pueden proporcionarse en la forma de un producto de programa informático, por ejemplo, que incluya un medio legible por la máquina o legible por una computadora y que tenga almacenadas en el mismo instrucciones (o procedimientos de programación) que se utilicen para programar una computadora para llevar a cabo un procedimiento que se ha expuesto aquí. El medio legible por la máquina puede incluir cualquier dispositivo de almacenamiento adecuado, tal como los que se han explicado con respecto a las Figuras 1 -7.
De manera adicional, dicho medio legible por computadora puede ser descargado como un producto de programa informático, de tal manera que el programa puede ser transferido desde una computadora distante (por ejemplo, un servidor) a una computadora que lo solicita (por ejemplo, un cliente) por medio de señales de datos incorporadas a una onda portadora o a otro medio de propagación, a través de un enlace de comunicación (por ejemplo, un módem o conexión de red). En consecuencia, se entenderá aquí que una onda portadora comprende un medio legible por la máquina.
La referencia que se hace aquí a "una de las realizaciones" o a "una realización" significa que un rasgo, estructura o característica concreta que se ha descrito en relación con la realización, puede ser incluida en al menos una implementación. Las ocasiones en que aparece la expresión "en una realización", en diversos lugares de la Memoria, pueden referirse o no, todas ellas, a la misma realización.
Asimismo, pueden utilizarse en la descripción y en las reivindicaciones los términos "acoplado" y "conectado", conjuntamente con sus derivados. En algunas realizaciones de la invención, "conectado" puede utilizarse para indicar que dos o más elementos están en contacto físico o eléctrico directo uno con otro. "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 pueden no encontrarse en contacto directo uno con otro, pero pueden cooperar o interactuar aún uno con otro.
Así pues, si bien se han descrito realizaciones de la invención en un lenguaje específico para las características estructurales y/o actuaciones metodológicas, ha de comprenderse que la materia objeto de las reivindicaciones puede no estar limitada a las características o actuaciones concretas que se han descrito. En lugar de ello, las características y actuaciones concretas se han descrito como formas de muestra o ilustrativas de la puesta en práctica de la materia objeto de las reivindicaciones.

Claims

REIVINDICACIONES
1 . Un método que comprende: detectar una o más variaciones dentro de un dominio de reloj de una pluralidad de dominios de reloj de un procesador; y ajustar una señal de reloj del dominio de reloj en respuesta a las una o más variaciones.
2. El método de acuerdo con la reivindicación 1 , en el cual detectar las una o más variaciones comprende captar mediante sensores una o más de entre una variación del procedimiento de fabricación de los semiconductores, una variación en la tensión de funcionamiento, una variación de la temperatura o una variación en el valor de entrada.
3. El método de acuerdo con la reivindicación 1 , en el cual ajustar la señal de reloj del dominio de reloj comprende ajustar una frecuencia de la señal de reloj.
4. El método de acuerdo con la reivindicación 1 , en el cual el ajuste de la señal de reloj se lleva a cabo basándose en la comparación de un valor de umbral como un cierto número de errores en la regulación de la secuencia temporal, detectados en el dominio de reloj .
5. El método de acuerdo con la reivindicación 1 , que comprende adicionalmente sincronizar la comunicación entre la pluralidad de dominios de reloj.
6. El método de acuerdo con la reivindicación 1 , que comprende adicionalmente: comparar una salida especulativa de una etapa de canal de comunicación dedicado o exclusivo, con una salida esperada procedente de la etapa de canal de comunicación dedicado; y determinar si la salida especulativa coincide con la salida esperada.
7. El método de acuerdo con la reivindicación 6, que comprende adicionalmente generar una señal de error si la salida especulativa es diferente de la salida esperada.
8. El método de acuerdo con la reivindicación 6, que comprende adicionalmente llevar a cabo de nuevo o reejecutar una o más instrucciones de consumidor en el caso de que la salida especulativa sea diferente de la salida esperada.
9. Un aparato que comprende: una lógica para detectar una o más variaciones dentro de un dominio de reloj de una pluralidad de dominios de reloj de un procesador; y un controlador de frecuencia, destinado a ajustar una señal de reloj del dominio de reloj en respuesta a las una o más variaciones.
10. El aparato de acuerdo con la reivindicación 9, en el cual la lógica para detectar las una o más variaciones comprende uno o más sensores.
1 1. El aparato de acuerdo con la reivindicación 10, en el cual los uno o más sensores son uno o más de entre un sensor de temperatura, una sonda de debilitamiento de la tensión o un oscilador de anillo.
12. El aparato de acuerdo con la reivindicación 9, en el cual la lógica para detectar las una o más variaciones detecta las una o más variaciones basándose en un cierto número de errores detectados dentro del dominio de reloj.
13. El aparato de acuerdo con la reivindicación 9, en el cual la pluralidad de dominios de reloj del procesador comprende uno o más de entre un dominio de terminal frontal o anterior, un dominio de terminal posterior y un dominio de caché de segundo nivel.
14. El aparato de acuerdo con la reivindicación 13 , en el cual el dominio de terminal anterior comprende uno o más de entre un sensor de terminal anterior, un controlador de frecuencia de terminal anterior, un registro de almacenamiento intermedio para reordenación, una unidad de redenominación y encaminamiento, una memoria caché de seguimiento, una unidad de recuperación y carga de instrucciones, una unidad de descodificación, un dispositivo de secuenciación, o una unidad de predicción de rama.
15. El aparato de acuerdo con la reivindicación 13 , en el cual el dominio de terminal posterior comprende uno o más de entre un dominio de caché de primer nivel y uno o más dominios de ejecución.
16. El aparato de acuerdo con la reivindicación 15, en el cual el dominio de caché de primer nivel comprende uno o más de entre una memoria caché de primer nivel, un controlador de frecuencia de caché de primer nivel, o un sensor de caché de primer nivel.
17. El aparato de acuerdo con la reivindicación 15, en el cual los uno o más dominios de ejecución comprenden uno o más de entre un dominio de ejecución de enteros y un dominio de ejecución de coma flotante.
1 8. El aparato de acuerdo con la reivindicación 15, en el cual cada dominio de ejecución comprende uno o más de entre una cola de emisión, un archivo de registros, un controlador de frecuencia de dominio de ejecución, un sensor de dominio de ejecución y una unidad de ejecución.
19. El aparato de acuerdo con la reivindicación 1 5, que comprende adicionalmente una interconexión para acoplar uno o más de entre el dominio de caché de primer nivel, los uno o más dominios de ejecución y el dominio de terminal anterior.
20. El aparato de acuerdo con la reivindicación 9, que comprende adicionalmente una pluralidad de registros de almacenamiento intermedio con estructura de "primero en entrar-primero en salir", a fin de sincronizar la comunicación entre la pluralidad de dominios de reloj.
21 . El aparato de acuerdo con la reivindicación 9, en el cual el procesador comprende una pluralidad de núcleos en una misma oblea o fragmento.
22. El aparato de acuerdo con la reivindicación 9, que comprende adicionalmente una lógica de comparación destinada a comparar una salida especulativa de una etapa de canal de comunicación dedicado con una salida esperada procedente de la etapa de canal de comunicación dedicado, a fin de determinar si la salida especulativa coincide con la salida esperada.
23. El aparato de acuerdo con la reivindicación 22, que comprende adicionalmente una primera unidad de almacenamiento, destinada a almacenar la salida especulativa en respuesta a un primer borde de reloj, y una segunda unidad de almacenamiento, destinada a almacenar la salida esperada en respuesta a un segundo borde de reloj .
24. El aparato de acuerdo con la reivindicación 23, en el cual los primer y segundo bordes de reloj son bordes de la señal de reloj.
25. Un procesador que comprende: un primer dominio, destinado a recibir una primera señal de reloj; un segundo dominio, destinado a recibir una segunda señal de reloj; uno o más sensores para detectar una o más variaciones dentro del primer dominio y del segundo dominio; una primera lógica, destinada a ajustar una frecuencia del primer reloj en respuesta a las una o más variaciones dentro del primer dominio; y una segunda lógica, destinada a ajustar una frecuencia del segundo reloj en respuesta a las una o más variaciones dentro del segundo dominio.
26. El procesador de acuerdo con la reivindicación 25, que comprende adicionalmente una lógica de comparación, destinada a comparar una salida especulativa de una etapa de canal de comunicación dedicado o exclusivo del procesador, con una salida esperada procedente de la etapa de canal de comunicación dedicado, a fin de determinar si la salida especulativa coincide con la salida esperada.
27. El procesador de acuerdo con la reivindicación 25, que comprende adicionalmente uno o más registros de almacenamiento intermedio para sincronizar la comunicación entre los primer y segundo dominios.
28. Un sistema de computación que comprende: uno o más dominios, de manera que cada dominio comprende: una lógica para llevar a cabo una o más funciones de computación; uno o más sensores, acoplados a los uno o más componentes de la lógica para llevar a cabo las una o más funciones de computación, estando los uno o más sensores destinados a detectar variaciones dentro de un dominio correspondiente; y un controlador de frecuencia, acoplado a la lógica para llevar a cabo las una o más funciones de computación, y a los uno o más sensores, estando el controlador de frecuencia destinado a ajustar una frecuencia de una señal de reloj para el correspondiente dominio en respuesta a uno o más de los errores de regulación de la secuencia temporal o variaciones.
29. El sistema de computación de acuerdo con la reivindicación 28, en el cual las una o más funciones de computación comprenden uno o más de entre el procesamiento o tratamiento de datos, el almacenamiento de datos y la comunicación de datos.
30. El sistema de computación de acuerdo con la reivindicación 28, de tal manera que el sistema de computación comprende al menos un dispositivo de computación seleccionado de entre un grupo compuesto por asistente digital personal (PDA), un teléfono móvil, una computadora portátil, una computadora de sobremesa, una computadora de servidor y una estación de trabajo.
PCT/ES2005/070152 2005-10-26 2005-10-26 Arquitectura en racimo que percibe las variaciones WO2007048859A1 (es)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/562,189 US7600145B2 (en) 2005-10-26 2005-10-26 Clustered variations-aware architecture
PCT/ES2005/070152 WO2007048859A1 (es) 2005-10-26 2005-10-26 Arquitectura en racimo que percibe las variaciones
CN2005800519281A CN101297255B (zh) 2005-10-26 2005-10-26 可检测变化的集群体系结构
KR1020087009947A KR100971806B1 (ko) 2005-10-26 2005-10-26 변화를 탐지하는 클러스터 아키텍처

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2005/070152 WO2007048859A1 (es) 2005-10-26 2005-10-26 Arquitectura en racimo que percibe las variaciones

Publications (1)

Publication Number Publication Date
WO2007048859A1 true WO2007048859A1 (es) 2007-05-03

Family

ID=36190408

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2005/070152 WO2007048859A1 (es) 2005-10-26 2005-10-26 Arquitectura en racimo que percibe las variaciones

Country Status (4)

Country Link
US (1) US7600145B2 (es)
KR (1) KR100971806B1 (es)
CN (1) CN101297255B (es)
WO (1) WO2007048859A1 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449176B (zh) * 2006-06-30 2014-04-23 英特尔公司 泄漏功率估计
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
CN102314208B (zh) * 2010-06-30 2016-08-03 重庆重邮信科通信技术有限公司 一种动态调整嵌入式设备频率电压的方法及装置
CN102445953B (zh) * 2010-09-30 2016-08-03 重庆重邮信科通信技术有限公司 一种嵌入式设备时钟源的调整方法
KR101294629B1 (ko) * 2011-08-31 2013-08-08 전남대학교산학협력단 3차원 멀티코어 프로세서의 분기예측기 배치방법 및 3차원 멀티코어 프로세서
WO2013095633A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Characterization of within-die variations of many-core processors
US9075904B2 (en) 2013-03-13 2015-07-07 Intel Corporation Vulnerability estimation for cache memory
US9176895B2 (en) 2013-03-16 2015-11-03 Intel Corporation Increased error correction for cache memories through adaptive replacement policies
KR102161689B1 (ko) * 2013-12-10 2020-10-05 삼성전자 주식회사 L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
US10447461B2 (en) * 2015-12-01 2019-10-15 Infineon Technologies Austria Ag Accessing data via different clocks
US10019372B2 (en) * 2015-12-16 2018-07-10 Western Digital Technologies, Inc. Caching sensing device data in data storage device
US11429526B2 (en) * 2018-10-15 2022-08-30 Texas Instruments Incorporated Credit aware central arbitration for multi-endpoint, multi-core system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000026747A1 (en) * 1998-10-30 2000-05-11 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US20040017234A1 (en) * 2002-07-26 2004-01-29 Tam Simon M. VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors
WO2004066092A2 (en) * 2003-01-23 2004-08-05 University Of Rochester Multiple clock domain microprocessor
WO2004084070A1 (en) * 2003-03-20 2004-09-30 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940785A (en) * 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US6748039B1 (en) * 2000-08-11 2004-06-08 Advanced Micro Devices, Inc. System and method for synchronizing a skip pattern and initializing a clock forwarding interface in a multiple-clock system
US6518782B1 (en) 2000-08-29 2003-02-11 Delta Design, Inc. Active power monitoring using externally located current sensors
EP1421704B1 (en) * 2001-08-29 2007-11-14 Analog Devices, Inc. Methods and apparatus for clock and power control in wireless systems
US6809538B1 (en) 2001-10-31 2004-10-26 Intel Corporation Active cooling to reduce leakage power
KR100470995B1 (ko) 2002-04-23 2005-03-08 삼성전자주식회사 클럭수신 동기회로를 갖는 멀티클럭 도메인 데이터 입력처리장치 및 그에 따른 클럭신호 인가방법
US7309998B2 (en) 2002-12-02 2007-12-18 Burns Lawrence M Process monitor for monitoring an integrated circuit chip
US7239681B2 (en) * 2003-05-09 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for maintaining a stable synchronization state in a programmable clock synchronizer
US6842714B1 (en) 2003-08-22 2005-01-11 International Business Machines Corporation Method for determining the leakage power for an integrated circuit
US7228446B2 (en) * 2004-12-21 2007-06-05 Packet Digital Method and apparatus for on-demand power management
CN101449176B (zh) * 2006-06-30 2014-04-23 英特尔公司 泄漏功率估计

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000026747A1 (en) * 1998-10-30 2000-05-11 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US20040017234A1 (en) * 2002-07-26 2004-01-29 Tam Simon M. VCC adaptive dynamically variable frequency clock system for high performance low power microprocessors
WO2004066092A2 (en) * 2003-01-23 2004-08-05 University Of Rochester Multiple clock domain microprocessor
WO2004084070A1 (en) * 2003-03-20 2004-09-30 Arm Limited Systematic and random error detection and recovery within processing stages of an integrated circuit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
QIANG WU ET AL: "Voltage and Frequency Control With Adaptive Reaction Time in Multiple-Clock-Domain Processors", HIGH-PERFORMANCE COMPUTER ARCHITECTURE, 2005. HPCA-11. 11TH INTERNATIONAL SYMPOSIUM ON SAN FRANCISCO, CA, USA 12-16 FEB. 2005, PISCATAWAY, NJ, USA,IEEE, 12 February 2005 (2005-02-12), pages 178 - 189, XP010772276, ISBN: 0-7695-2275-0 *

Also Published As

Publication number Publication date
CN101297255A (zh) 2008-10-29
CN101297255B (zh) 2011-11-02
KR100971806B1 (ko) 2010-07-22
US20080028252A1 (en) 2008-01-31
US7600145B2 (en) 2009-10-06
KR20080054409A (ko) 2008-06-17

Similar Documents

Publication Publication Date Title
WO2007048859A1 (es) Arquitectura en racimo que percibe las variaciones
US10795841B2 (en) High performance interconnect physical layer
CN107015924B (zh) 高性能互连物理层
US8760946B2 (en) Method and apparatus for memory access delay training
US7555597B2 (en) Direct cache access in multiple core processors
KR102170644B1 (ko) 낮은 레벨 프로그래밍 가능한 시퀀서와 조합한 범용 프로그래밍 가능한 프로세서를 사용한 비휘발성 메모리 채널 제어
US8275977B2 (en) Debug signaling in a multiple processor data processing system
US9454213B2 (en) Method, apparatus, system for lane staggering and determinism for serial high speed I/O lanes
CN112486875A (zh) 多芯片封装链路
US10540248B2 (en) Apparatus for controlling access to a memory device, and a method of performing a maintenance operation within such an apparatus
WO2016153662A1 (en) Pseudorandom bit sequences in an interconnect
US9680459B2 (en) Edge-aware synchronization of a data signal
US20110040902A1 (en) Compensation engine for training double data rate delays
US9111050B2 (en) Switching a computer system from a high performance mode to a low power mode
US7152167B2 (en) Apparatus and method for data bus power control
US9411362B2 (en) Storage circuitry and method for propagating data values across a clock boundary
US20070033313A1 (en) Data bus mechanism for dynamic source synchronized sampling adjust
US20150127865A1 (en) Method and apparatus use with interrupts
US20230112432A1 (en) Dynamic setup and hold times adjustment for memories
US7958284B2 (en) Multi-channel fractional clock data transfer
US10812075B2 (en) Dynamic on-die termination
US20170115686A1 (en) Method and Apparatus for Natural Clock Generation in the System
US20230361900A1 (en) Synchronized rate control at rate limiter
WO2023064729A1 (en) Dynamic setup and hold times adjustment for memories

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200580051928.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 10562189

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 10562189

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020087009947

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05815002

Country of ref document: EP

Kind code of ref document: A1