US5951689A - Microprocessor power control system - Google Patents

Microprocessor power control system Download PDF

Info

Publication number
US5951689A
US5951689A US08/775,629 US77562996A US5951689A US 5951689 A US5951689 A US 5951689A US 77562996 A US77562996 A US 77562996A US 5951689 A US5951689 A US 5951689A
Authority
US
United States
Prior art keywords
gates
execution units
power control
control unit
coupled
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08/775,629
Inventor
David R. Evoy
Desi Rhoden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mosaid Technologies Inc
Original Assignee
VLSI Technology Inc
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
Priority to US08/775,629 priority Critical patent/US5951689A/en
Assigned to VLSI TECHNOLOGY, INC. reassignment VLSI TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: RHODEN, DESI, EVOY, DAVID R.
Application filed by VLSI Technology Inc filed Critical VLSI Technology Inc
Application granted granted Critical
Publication of US5951689A publication Critical patent/US5951689A/en
Assigned to NXP B.V. reassignment NXP B.V. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PHILIPS SEMICONDUCTORS INC.
Assigned to PHILIPS SEMICONDUCTORS VLSI INC. reassignment PHILIPS SEMICONDUCTORS VLSI INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: VLSI TECHNOLOGY, INC.
Assigned to PHILIPS SEMICONDUCTORS INC. reassignment PHILIPS SEMICONDUCTORS INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: PHILIPS SEMICONDUCTORS VLSI INC.
Assigned to HAYSTACK ALLEY, LLC reassignment HAYSTACK ALLEY, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NXP B.V.
Assigned to MOSAID TECHNOLOGIES INCORPORATED reassignment MOSAID TECHNOLOGIES INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HAYSTACK ALLEY, LLC
Assigned to ROYAL BANK OF CANADA reassignment ROYAL BANK OF CANADA U.S. INTELLECTUAL PROPERTY SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) - SHORT FORM Assignors: 658276 N.B. LTD., 658868 N.B. INC., MOSAID TECHNOLOGIES INCORPORATED
Assigned to CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. reassignment CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MOSAID TECHNOLOGIES INCORPORATED
Assigned to CONVERSANT IP N.B. 868 INC., CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC., CONVERSANT IP N.B. 276 INC. reassignment CONVERSANT IP N.B. 868 INC. RELEASE OF SECURITY INTEREST Assignors: ROYAL BANK OF CANADA
Assigned to CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. reassignment CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. CHANGE OF ADDRESS Assignors: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Assigned to CPPIB CREDIT INVESTMENTS INC., AS LENDER, ROYAL BANK OF CANADA, AS LENDER reassignment CPPIB CREDIT INVESTMENTS INC., AS LENDER U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Assignors: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Anticipated expiration legal-status Critical
Assigned to CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. reassignment CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC. RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS) Assignors: ROYAL BANK OF CANADA, AS LENDER
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/203Cooling means for portable computers, e.g. for laptops
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • multiple execution units are operated in parallel under the control of a dispatcher to permit simultaneous processing of instructions. While the use of multiple parallel-operated execution units increases the performance of the computer, this is accomplished by the consumption of increased power, which also generates increased temperatures in the computer. Even though multiple parallel execution units increase the performance of the processor, power is wasted when conflicts exist and the results must be discarded. In addition, power is wasted when some of the execution units are idle or performing no operations during various time intervals.
  • Portable computers generally are equipped with thermal sensors, which operate cooling fan controls and clock throttling in order to avoid overheating and destruction of sensitive components. Generally, however, portable computers involve a trade-off between performance and battery life. If long battery life is desired, slower performance or lower performance levels are employed. If high performance (that is, parallel operation of multiple execution units) is employed, the result generally is a shortened battery life between recharging.
  • FIGURE of the drawing is a block diagram of a preferred embodiment of the invention.
  • the microprocessor includes an internal CPU data bus of a conventional configuration for handling the internal data within the microprocessor.
  • a power control unit 40 which may incorporate power management hardware and/or software for conventional fan control, clock throttling triggered by inactivity monitors or by thermal sensors detecting excess temperature.
  • the power control unit 40 includes hardware/software for effecting power control according to the present invention. Communication between the internal data bus 10 and the power control unit 40 is indicated by the interconnections between them, as shown in the drawing.
  • a pre-fetch circuit 12 communicates with the data bus 10 to supply pre-fetched instructions through a decode block 14 to a dispatcher 16.
  • the dispatcher 16 is shown as coupled by way of a bus to three parallel integer execution units 18, 20 and 22 and to two parallel floating point execution units 24 and 26. The outputs of all of these execution units 18, 20, 22, 24 and 26 are coupled with an instruction complete block 28.
  • the system which is illustrated is a typical super scaler processor, in which the multiple execution units 18, 20, 22, 24 and 26 may be operated in parallel to increase the performance of the microprocessor with which they are associated. Multiple instructions are executed at the same time in the different execution units 18, 20, 22, 24 and 26, as long as these instructions do not contend for the same resources (namely, registers or memory, etc., not shown).
  • the power which is used by the instruction completion block 28, which is specific to multiple execution units (like register renaming) and the power used by the logic which performs the checks for dependence, is power which can be saved, if necessary, to reduce heat or to reduce battery power consumption.
  • clock signals are supplied to all of the execution units 18, 20, 22, 24 and 26 at all times; so that any power management control effected by a power control block such as the block 40, operates on all of the units in the same manner.
  • clock signals supplied over the internal CPU data bus 10 over the clock lead 30 are supplied directly to only two of the execution units, namely the integer execution unit 18 and the floating point execution unit 24.
  • the clock signals for the other three execution units 20, 22 and 26 are supplied to one input of a respective AND gate 32, 34 and 36, the outputs of which are connected to the execution units 20, 22 and 26 to supply clock signals to those units.
  • each of the AND gates 32, 34 and 36 is supplied through corresponding OR gates 31, 33 and 35.
  • Each of these OR gates is a two-input gate having one input from the dispatcher 18 and another input from an execution unit control logic flip-flop 38.
  • the output of the flip-flop 38 is a signal supplied to each of the three OR gates 31, 33 and 35 and to the dispatcher 16 over a lead 48. This output is an enable output for the execution units 20, 22 and 26.
  • the enable/disable control input is applied over a lead 42 from the data bus 10 and may be any bit on the internal data bus of the CPU or microprocessor.
  • the power control unit 40 supplies a clock or configuration write signal over a lead 44 to the clock input of the flip-flop 38 to set the flip-flop 38 to its "enable” or “disable” output whenever the signal on the lead 44 occurs at a time when the corresponding "enable” or “disable” control signal is present on the lead 42 from the data bus 10.
  • the signals on the leads 42 and 44 from the power control unit 40 may be generated by a software control established whenever the user of the microprocessor system desires to conserve power, thereby placing the system in a "low power" mode of operation.
  • these signals also may be generated automatically in response to a thermistor indicating a temperature which is higher than desired, requiring a reduced power consumption by the system, so long as the high temperature condition persists.
  • the output from such a thermistor sensor also may be used to control a fan operation in the processor.
  • the decision to operate on reduced power may be effected as noted above, either directly by means of a switch or other hardware implementation (such as the thermistor discussed previously); or the power control may be implemented by means of software. If a high performance operating level of the microprocessor is not required for a particular application, software instructions may be utilized to operate the power control circuit 40 to cause the output applied over the lead 48 to go from a normal "high" to a “low” output. This output is supplied through an inverter 39 over the lead 48 to the dispatcher 16 and to one of the two inputs of three OR gates 31, 33 and 35, the outputs of which are connected, respectively, to one of the two inputs of AND gates 32, 34 and 36.
  • the output of the inverter 39 is high; and this output, supplied through the NOR gates 31, 33 and 35 to the AND gates 32, 34 and 36, enables these AND gates to pass clock pulses supplied to them.
  • all of the execution units 18, 20, 22, 24 and 26 are continuously clocked and are operated to process instructions in accordance with the outputs of the dispatcher 16.
  • the signal over the lead 42 (originating from the CPU data bus 10 40), coinciding with the output of the power control unit 40 applied over the lead 44, causes the output of the flip-flop 38 to go high. This causes a low input to be applied from the inverter 39 over the lead 48 to the dispatcher 16 and to the OR gates 31, 33 and 35.
  • the dispatcher 16 also provides a second input to each of the OR gates 31, 33 and 35. Whenever the signal on the lead 48 goes low, the dispatcher 16 supplies a high input over the respective ones of the leads coupled to the OR gates 31, 33 and 35 only for so long as is necessary to complete the execution of the information currently being handled by the respective execution unit 20, 22 or 26. Upon completion of the execution of that information, the signal on the corresponding input to the OR gate 31, 33 or 35 goes low, thereby removing the enabling signal to the corresponding AND gate 33, 34 and 36. When the second input to the AND gates 32, 34 and 36 is low, no clock signals are passed by these gates; and the execution units 20, 22 and 26 are removed from the system operation.
  • the signals on the inputs 42 and 44 to the flip-flop 48 are such to cause the output of the flip-flop 38 to go "low". This causes the inverted output from the inverter 39 to go high, thereby enabling the AND gates 32, 34 and 36. Clock pulses then are passed by these AND gates to the execution units 20, 22 and 26, along with the units 18 and 24, which always are interconnected into the system operation.
  • the operation of the system may be summarized by noting that a decision first is made in the power control unit 40 to decrease power consumption and possibly lower the microprocessor performance.
  • the flip-flop 38 is triggered to produce a "high" output, which is inverted by the invertor 39 and supplied to the dispatcher 16 and through the OR gates 31, 33 and 35 to the clock control AND gates 32, 34 and 36, respectively.
  • the dispatcher 16 operates to no longer dispatch any additional instructions to the execution units which are to be disabled (namely, units 20, 22 and 26 in the example shown in the drawing).
  • the execution units which are to be disabled are permitted to empty, since the AND gates 32, 34 or 36 for such units continue to be enabled by signals supplied from the dispatcher 16 through the OR gates 31, 33 or 35 until all instructions have been processed by the execution units which are to be subsequently disabled. Once the units are disabled, the system operates with the remaining execution units 18 and 26, as described above.

Abstract

A power control system for a microprocessor, having multiple parallel operated execution units, functions to disable some of the execution units to conserve power and/or reduce heat. The execution units are disabled by preventing the application of clock pulses to these execution units. This operation is effected by a power control unit which enables and disables gates coupled between a source of clock signals and the execution units.

Description

BACKGROUND
In the development of personal computers, there is a continuing escalation of the demands created by ever more sophisticated software to improve the performance or operating characteristics of the computer. Modern personal computers primarily use microprocessors developed by Intel® designated as the Pentium® microprocessor. With this and other microprocessors, the key to high performance in a personal computer is the utilization of parallelism in the processing of instructions.
To accomplish parallel operation, multiple execution units are operated in parallel under the control of a dispatcher to permit simultaneous processing of instructions. While the use of multiple parallel-operated execution units increases the performance of the computer, this is accomplished by the consumption of increased power, which also generates increased temperatures in the computer. Even though multiple parallel execution units increase the performance of the processor, power is wasted when conflicts exist and the results must be discarded. In addition, power is wasted when some of the execution units are idle or performing no operations during various time intervals.
Except for the thermal considerations, power consumption in a desktop computer generally is not a factor. The use of increased power levels, however, is a significant factor for most portable battery operated personal computers. The increased performance which is obtained from the operation of parallel execution units is offset by decreased battery life. In the case of portable personal computers, the thermal considerations also can be significant because of the compact packaging and less efficient cooling systems.
Portable computers generally are equipped with thermal sensors, which operate cooling fan controls and clock throttling in order to avoid overheating and destruction of sensitive components. Generally, however, portable computers involve a trade-off between performance and battery life. If long battery life is desired, slower performance or lower performance levels are employed. If high performance (that is, parallel operation of multiple execution units) is employed, the result generally is a shortened battery life between recharging.
It is desirable to provide a power control system for a microprocessor which selectively may be used to conserve battery life or to increase performance.
SUMMARY OF THE INVENTION
In a microprocessor system utilizing multiple execution units capable of operation in parallel for maximum performance, provisions are made to effect a trade-off between performance and power consumption. To reduce power consumption, some of the parallel-connected execution units are disabled in response to a control signal applied whenever power reduction is desired. Others of the execution units are not disabled; so that operation of the microprocessor at reduced performance continues.
BRIEF DESCRIPTION OF THE DRAWING
The sole FIGURE of the drawing is a block diagram of a preferred embodiment of the invention.
DETAILED DESCRIPTION
Reference now should be made to the drawing, which is a schematic block diagram of a portion of a microprocessor illustrating a preferred embodiment of the invention. As shown in the drawing, the microprocessor includes an internal CPU data bus of a conventional configuration for handling the internal data within the microprocessor. In conjunction with the system, there is a power control unit 40, which may incorporate power management hardware and/or software for conventional fan control, clock throttling triggered by inactivity monitors or by thermal sensors detecting excess temperature. In addition, the power control unit 40 includes hardware/software for effecting power control according to the present invention. Communication between the internal data bus 10 and the power control unit 40 is indicated by the interconnections between them, as shown in the drawing.
In the typical microprocessor system with which the invention shown in the drawing is used, a pre-fetch circuit 12 communicates with the data bus 10 to supply pre-fetched instructions through a decode block 14 to a dispatcher 16. For maximum performance, the dispatcher 16 is shown as coupled by way of a bus to three parallel integer execution units 18, 20 and 22 and to two parallel floating point execution units 24 and 26. The outputs of all of these execution units 18, 20, 22, 24 and 26 are coupled with an instruction complete block 28.
The system which is illustrated is a typical super scaler processor, in which the multiple execution units 18, 20, 22, 24 and 26 may be operated in parallel to increase the performance of the microprocessor with which they are associated. Multiple instructions are executed at the same time in the different execution units 18, 20, 22, 24 and 26, as long as these instructions do not contend for the same resources (namely, registers or memory, etc., not shown). The power which is used by the instruction completion block 28, which is specific to multiple execution units (like register renaming) and the power used by the logic which performs the checks for dependence, is power which can be saved, if necessary, to reduce heat or to reduce battery power consumption. In a typical super scaler processor, clock signals are supplied to all of the execution units 18, 20, 22, 24 and 26 at all times; so that any power management control effected by a power control block such as the block 40, operates on all of the units in the same manner.
As shown in the drawing, however, clock signals supplied over the internal CPU data bus 10 over the clock lead 30 are supplied directly to only two of the execution units, namely the integer execution unit 18 and the floating point execution unit 24. The clock signals for the other three execution units 20, 22 and 26 are supplied to one input of a respective AND gate 32, 34 and 36, the outputs of which are connected to the execution units 20, 22 and 26 to supply clock signals to those units.
The other input to each of the AND gates 32, 34 and 36 is supplied through corresponding OR gates 31, 33 and 35. Each of these OR gates is a two-input gate having one input from the dispatcher 18 and another input from an execution unit control logic flip-flop 38. The output of the flip-flop 38 is a signal supplied to each of the three OR gates 31, 33 and 35 and to the dispatcher 16 over a lead 48. This output is an enable output for the execution units 20, 22 and 26.
The enable/disable control input is applied over a lead 42 from the data bus 10 and may be any bit on the internal data bus of the CPU or microprocessor. As illustrated in the drawing, the power control unit 40 supplies a clock or configuration write signal over a lead 44 to the clock input of the flip-flop 38 to set the flip-flop 38 to its "enable" or "disable" output whenever the signal on the lead 44 occurs at a time when the corresponding "enable" or "disable" control signal is present on the lead 42 from the data bus 10.
It should be noted that the signals on the leads 42 and 44 from the power control unit 40 may be generated by a software control established whenever the user of the microprocessor system desires to conserve power, thereby placing the system in a "low power" mode of operation. In addition these signals also may be generated automatically in response to a thermistor indicating a temperature which is higher than desired, requiring a reduced power consumption by the system, so long as the high temperature condition persists. As noted previously, the output from such a thermistor sensor also may be used to control a fan operation in the processor.
The decision to operate on reduced power may be effected as noted above, either directly by means of a switch or other hardware implementation (such as the thermistor discussed previously); or the power control may be implemented by means of software. If a high performance operating level of the microprocessor is not required for a particular application, software instructions may be utilized to operate the power control circuit 40 to cause the output applied over the lead 48 to go from a normal "high" to a "low" output. This output is supplied through an inverter 39 over the lead 48 to the dispatcher 16 and to one of the two inputs of three OR gates 31, 33 and 35, the outputs of which are connected, respectively, to one of the two inputs of AND gates 32, 34 and 36.
During the normal high performance mode of operation of the system, the output of the inverter 39 is high; and this output, supplied through the NOR gates 31, 33 and 35 to the AND gates 32, 34 and 36, enables these AND gates to pass clock pulses supplied to them. As a consequence, all of the execution units 18, 20, 22, 24 and 26 are continuously clocked and are operated to process instructions in accordance with the outputs of the dispatcher 16.
When power conservation or power reduction is required, either as a result of low battery or software or hardware implementation by the operator of the system, the signal over the lead 42 (originating from the CPU data bus 10 40), coinciding with the output of the power control unit 40 applied over the lead 44, causes the output of the flip-flop 38 to go high. This causes a low input to be applied from the inverter 39 over the lead 48 to the dispatcher 16 and to the OR gates 31, 33 and 35.
The dispatcher 16 also provides a second input to each of the OR gates 31, 33 and 35. Whenever the signal on the lead 48 goes low, the dispatcher 16 supplies a high input over the respective ones of the leads coupled to the OR gates 31, 33 and 35 only for so long as is necessary to complete the execution of the information currently being handled by the respective execution unit 20, 22 or 26. Upon completion of the execution of that information, the signal on the corresponding input to the OR gate 31, 33 or 35 goes low, thereby removing the enabling signal to the corresponding AND gate 33, 34 and 36. When the second input to the AND gates 32, 34 and 36 is low, no clock signals are passed by these gates; and the execution units 20, 22 and 26 are removed from the system operation.
When the system is in the "low power" mode of operation described above, the execution units 18 and 24 continue to function in a normal manner; but no parallel processing is effected by the system. Consequently, power consumption is reduced; but at the same time, there is a concurrent reduction in the performance level of the system.
At such time high performance once again is desired or required, the signals on the inputs 42 and 44 to the flip-flop 48 are such to cause the output of the flip-flop 38 to go "low". This causes the inverted output from the inverter 39 to go high, thereby enabling the AND gates 32, 34 and 36. Clock pulses then are passed by these AND gates to the execution units 20, 22 and 26, along with the units 18 and 24, which always are interconnected into the system operation.
The operation of the system may be summarized by noting that a decision first is made in the power control unit 40 to decrease power consumption and possibly lower the microprocessor performance. When this decision is made, the flip-flop 38 is triggered to produce a "high" output, which is inverted by the invertor 39 and supplied to the dispatcher 16 and through the OR gates 31, 33 and 35 to the clock control AND gates 32, 34 and 36, respectively. In response to the control bits supplied over the lead 48, the dispatcher 16 operates to no longer dispatch any additional instructions to the execution units which are to be disabled (namely, units 20, 22 and 26 in the example shown in the drawing). The execution units which are to be disabled are permitted to empty, since the AND gates 32, 34 or 36 for such units continue to be enabled by signals supplied from the dispatcher 16 through the OR gates 31, 33 or 35 until all instructions have been processed by the execution units which are to be subsequently disabled. Once the units are disabled, the system operates with the remaining execution units 18 and 26, as described above.
At any subsequent time, when the power control unit 40 determines to increase the performance of the microprocessor and also increase power consumption, signals are applied to the flip-flop 38 to cause the output to go low. This in turn causes a high enabling output to be obtained from the inverter 39 and supplied through the OR gates 31, 33 and 35 to the clock control AND gates 32, 34 and 36, thereby resuming the supply of clock pulses to the execution units 20, 22 and 26. Normal operation of a parallel processing system then is effected by the dispatcher 16, which is enabled to function with all of the execution units 18, 20, 22, 24 and 26 in a conventional manner.
The foregoing description of the preferred embodiment of the invention is to be considered as illustrative and not as limiting. Various changes and modifications will occur to those skilled in the art for performing substantially the same function, in substantially the same way, to achieve substantially the same result, without departing from the true scope of the invention as defined in the appended claims.

Claims (9)

What is claimed is:
1. A power control system for a microprocessor including in combination:
a plurality of integer execution units and a plurality of floating point execution units connected in parallel to operate simultaneously between an input bus and an output bus in said microprocessor;
an instruction dispatcher coupled through said input bus to said execution units for supplying instructions for execution by said execution units, wherein multiple instructions may be executed simultaneously by different ones of said execution units;
a source of clock signals for operating said execution units;
a plurality of normally enabled power control gates coupled between said source of clock signals and less than all of said integer execution units and less than all of said floating point execution units for normally passing clock signals to said execution units when the corresponding ones of said gates are enabled; and
a source of gate control signals coupled with said gates for enabling and disabling said gates, whereby whenever said gates are disabled, clock pulses are not passed to said less than all of said execution units which then are not operated, thereby reducing power consumption of said microprocessor.
2. The combination according to claim 1 wherein said power control unit provides said gate control signals in response to a plurality of predetermined conditions.
3. The combination according to claim 2 wherein said plurality of gates are AND gates.
4. The combination according to claim 3 wherein said source of gate control signals comprises a power control unit further coupled with said instruction dispatcher and wherein said instruction dispatcher has control outputs coupled with said gates for maintaining said gates enabled for predetermined time intervals after said power control unit operates to disable said gates.
5. The combination according to claim 4 wherein said gate control signals from said power control unit and said control outputs from said instruction dispatcher are coupled through OR gates to corresponding enabling/disabling inputs of said plurality of gates.
6. The combination according to claim 1 wherein said source of gate control signals comprises a power control unit further coupled with said instruction dispatcher and wherein said instruction dispatcher has control outputs coupled with said gates for maintaining said gates enabled for predetermined time intervals after said power control unit operates to disable said gates.
7. The combination according to claim 6 wherein said gate control signals from said power control unit and said control outputs from said instruction dispatcher are coupled through OR gates to corresponding enabling/disabling inputs of said plurality of gates.
8. The combination according to claim 1 wherein said power control unit provides said gate control signals in response to a plurality of predetermined conditions.
9. The combination according to claim 8 wherein said plurality of gates are AND gates.
US08/775,629 1996-12-31 1996-12-31 Microprocessor power control system Expired - Lifetime US5951689A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/775,629 US5951689A (en) 1996-12-31 1996-12-31 Microprocessor power control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/775,629 US5951689A (en) 1996-12-31 1996-12-31 Microprocessor power control system

Publications (1)

Publication Number Publication Date
US5951689A true US5951689A (en) 1999-09-14

Family

ID=25104986

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/775,629 Expired - Lifetime US5951689A (en) 1996-12-31 1996-12-31 Microprocessor power control system

Country Status (1)

Country Link
US (1) US5951689A (en)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081901A (en) * 1997-06-03 2000-06-27 Kabushiki Kaisha Toshiba System and method for dynamically controlling processing speed of a computer in response to user commands
US6173408B1 (en) * 1997-09-03 2001-01-09 Matsushita Electric Industrial Co., Ltd. Processor
US6212644B1 (en) * 1998-09-10 2001-04-03 Intel Corporation Controlling temperatures in computers
US6260151B1 (en) * 1997-03-14 2001-07-10 Kabushiki Kaisha Toshiba Computer system capable of controlling the power supplied to specific modules
US20030145189A1 (en) * 2001-12-27 2003-07-31 Stmicroelectronics S.R.L. Processing architecture, related system and method of operation
US20040078550A1 (en) * 2002-07-31 2004-04-22 Texas Instruments Incorporated Multi-processor computing system having a JAVA stack machine and a RISC-based processor
US20040181652A1 (en) * 2002-08-27 2004-09-16 Ashraf Ahmed Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor
US20040186870A1 (en) * 2003-03-19 2004-09-23 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US20040225868A1 (en) * 2003-05-07 2004-11-11 International Business Machines Corporation An integrated circuit having parallel execution units with differing execution latencies
US6826704B1 (en) 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US6834353B2 (en) 2001-10-22 2004-12-21 International Business Machines Corporation Method and apparatus for reducing power consumption of a processing integrated circuit
US20040268091A1 (en) * 2001-11-26 2004-12-30 Francesco Pessolano Configurable processor, and instruction set, dispatch method, compilation method for such a processor
US20050086316A1 (en) * 1999-12-03 2005-04-21 Samuel Chen Techniques for providing add-on services for an email system
US20050198429A1 (en) * 2004-03-02 2005-09-08 Nec Electronics Corporation Multilayer system and clock control method
US6983389B1 (en) 2002-02-01 2006-01-03 Advanced Micro Devices, Inc. Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US20060020831A1 (en) * 2004-06-30 2006-01-26 Sun Microsystems, Inc. Method and appratus for power throttling in a multi-thread processor
US20060047988A1 (en) * 2004-08-25 2006-03-02 Fuji Xerox Co., Ltd. Semiconductor integrated circuit and its power-saving control method and program
US20060271597A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Code-enabled/code-free files
US20070188186A1 (en) * 2006-02-14 2007-08-16 Toshiba America Electronic Components Systems and methods for managing power supplied to integrated circuits
US7266710B1 (en) 2002-06-21 2007-09-04 Steve Cooper Power throttle controller
US20070234094A1 (en) * 2003-12-23 2007-10-04 Samra Nicholas G Methods and apparatus to control power consumption within a processor
US20090153211A1 (en) * 2007-12-17 2009-06-18 Neil Hendin Integrated circuit device core power down independent of peripheral device operation
US20090153108A1 (en) * 2007-12-17 2009-06-18 Neil Hendin Power management efficiency using DC-DC and linear regulators in conjunction
US20090193424A1 (en) * 2008-01-25 2009-07-30 International Business Machines Corporation Method of processing instructions in pipeline-based processor and corresponding processor
US20090204837A1 (en) * 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
US20090259863A1 (en) * 2008-04-10 2009-10-15 Nvidia Corporation Responding to interrupts while in a reduced power state
US20090282275A1 (en) * 2006-06-27 2009-11-12 Koninklijke Philips Electronics N.V. Device and a method for managing power consumption of a plurality of data processing units
US7797561B1 (en) * 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating
US7802118B1 (en) 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US7958483B1 (en) * 2006-12-21 2011-06-07 Nvidia Corporation Clock throttling based on activity-level signals
US20130205144A1 (en) * 2012-02-06 2013-08-08 Jeffrey R. Eastlack Limitation of leakage power via dynamic enablement of execution units to accommodate varying performance demands
US9423846B2 (en) 2008-04-10 2016-08-23 Nvidia Corporation Powered ring to maintain IO state independent of the core of an integrated circuit device
US9773344B2 (en) 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
US9811874B2 (en) 2012-12-31 2017-11-07 Nvidia Corporation Frame times by dynamically adjusting frame buffer resolution
US10496409B2 (en) 2016-11-22 2019-12-03 The Arizona Board Of Regents Method and system for managing control of instruction and process execution in a programmable computing system
US11573622B2 (en) * 2006-10-11 2023-02-07 Texas Instruments Incorporated Discrete power control of components within a computer system

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4234920A (en) * 1978-11-24 1980-11-18 Engineered Systems, Inc. Power failure detection and restart system
US5133077A (en) * 1987-10-19 1992-07-21 International Business Machines Corporation Data processor having multiple execution units for processing plural classs of instructions in parallel
US5420808A (en) * 1993-05-13 1995-05-30 International Business Machines Corporation Circuitry and method for reducing power consumption within an electronic circuit
US5452434A (en) * 1992-07-14 1995-09-19 Advanced Micro Devices, Inc. Clock control for power savings in high performance central processing units
US5583805A (en) * 1994-12-09 1996-12-10 International Business Machines Corporation Floating-point processor having post-writeback spill stage
US5590061A (en) * 1994-05-12 1996-12-31 Apple Computer, Inc. Method and apparatus for thermal management in a computer system
US5630143A (en) * 1992-03-27 1997-05-13 Cyrix Corporation Microprocessor with externally controllable power management
US5655124A (en) * 1992-03-31 1997-08-05 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US5813022A (en) * 1994-10-14 1998-09-22 Compaq Computer Corporation Circuit for placing a cache memory into low power mode in response to special bus cycles executed on the bus

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4234920A (en) * 1978-11-24 1980-11-18 Engineered Systems, Inc. Power failure detection and restart system
US5133077A (en) * 1987-10-19 1992-07-21 International Business Machines Corporation Data processor having multiple execution units for processing plural classs of instructions in parallel
US5630143A (en) * 1992-03-27 1997-05-13 Cyrix Corporation Microprocessor with externally controllable power management
US5655124A (en) * 1992-03-31 1997-08-05 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5452434A (en) * 1992-07-14 1995-09-19 Advanced Micro Devices, Inc. Clock control for power savings in high performance central processing units
US5420808A (en) * 1993-05-13 1995-05-30 International Business Machines Corporation Circuitry and method for reducing power consumption within an electronic circuit
US5590061A (en) * 1994-05-12 1996-12-31 Apple Computer, Inc. Method and apparatus for thermal management in a computer system
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US5813022A (en) * 1994-10-14 1998-09-22 Compaq Computer Corporation Circuit for placing a cache memory into low power mode in response to special bus cycles executed on the bus
US5583805A (en) * 1994-12-09 1996-12-10 International Business Machines Corporation Floating-point processor having post-writeback spill stage

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260151B1 (en) * 1997-03-14 2001-07-10 Kabushiki Kaisha Toshiba Computer system capable of controlling the power supplied to specific modules
US6081901A (en) * 1997-06-03 2000-06-27 Kabushiki Kaisha Toshiba System and method for dynamically controlling processing speed of a computer in response to user commands
US6230279B1 (en) * 1997-06-03 2001-05-08 Kabushiki Kaisha Toshiba System and method for dynamically controlling processing speed of a computer in response to user commands
US6173408B1 (en) * 1997-09-03 2001-01-09 Matsushita Electric Industrial Co., Ltd. Processor
US6212644B1 (en) * 1998-09-10 2001-04-03 Intel Corporation Controlling temperatures in computers
US20050086316A1 (en) * 1999-12-03 2005-04-21 Samuel Chen Techniques for providing add-on services for an email system
US6826704B1 (en) 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US6834353B2 (en) 2001-10-22 2004-12-21 International Business Machines Corporation Method and apparatus for reducing power consumption of a processing integrated circuit
US7472257B2 (en) * 2001-11-26 2008-12-30 Nxp B.V. Rerouting VLIW instructions to accommodate execution units deactivated upon detection by dispatch units of dedicated instruction alerting multiple successive removed NOPs
US20040268091A1 (en) * 2001-11-26 2004-12-30 Francesco Pessolano Configurable processor, and instruction set, dispatch method, compilation method for such a processor
US20030145189A1 (en) * 2001-12-27 2003-07-31 Stmicroelectronics S.R.L. Processing architecture, related system and method of operation
US6983389B1 (en) 2002-02-01 2006-01-03 Advanced Micro Devices, Inc. Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US7266710B1 (en) 2002-06-21 2007-09-04 Steve Cooper Power throttle controller
US20040078550A1 (en) * 2002-07-31 2004-04-22 Texas Instruments Incorporated Multi-processor computing system having a JAVA stack machine and a RISC-based processor
US8429383B2 (en) * 2002-07-31 2013-04-23 Texas Instruments Incorporated Multi-processor computing system having a JAVA stack machine and a RISC-based processor
US6944744B2 (en) 2002-08-27 2005-09-13 Advanced Micro Devices, Inc. Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor
US20040181652A1 (en) * 2002-08-27 2004-09-16 Ashraf Ahmed Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor
US7058830B2 (en) * 2003-03-19 2006-06-06 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US20040186870A1 (en) * 2003-03-19 2004-09-23 International Business Machines Corporation Power saving in a floating point unit using a multiplier and aligner bypass
US20040225868A1 (en) * 2003-05-07 2004-11-11 International Business Machines Corporation An integrated circuit having parallel execution units with differing execution latencies
US8219836B2 (en) * 2003-12-23 2012-07-10 Intel Corporation Methods and apparatus to monitor instruction types and control power consumption within a processor
US20070234094A1 (en) * 2003-12-23 2007-10-04 Samra Nicholas G Methods and apparatus to control power consumption within a processor
US20050198429A1 (en) * 2004-03-02 2005-09-08 Nec Electronics Corporation Multilayer system and clock control method
US20060020831A1 (en) * 2004-06-30 2006-01-26 Sun Microsystems, Inc. Method and appratus for power throttling in a multi-thread processor
US7330988B2 (en) 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7398409B2 (en) * 2004-08-25 2008-07-08 Fuji Xerox Co., Ltd. Semiconductor integrated circuit and its power-saving control method and program
US20060047988A1 (en) * 2004-08-25 2006-03-02 Fuji Xerox Co., Ltd. Semiconductor integrated circuit and its power-saving control method and program
US20060271597A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Code-enabled/code-free files
US20070188186A1 (en) * 2006-02-14 2007-08-16 Toshiba America Electronic Components Systems and methods for managing power supplied to integrated circuits
US8132030B2 (en) * 2006-06-27 2012-03-06 Koninklijke Philips Electronics N.V. Device and a method for managing power consumption of a plurality of data processing units
US20090282275A1 (en) * 2006-06-27 2009-11-12 Koninklijke Philips Electronics N.V. Device and a method for managing power consumption of a plurality of data processing units
US11573622B2 (en) * 2006-10-11 2023-02-07 Texas Instruments Incorporated Discrete power control of components within a computer system
US7958483B1 (en) * 2006-12-21 2011-06-07 Nvidia Corporation Clock throttling based on activity-level signals
US7797561B1 (en) * 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating
US7802118B1 (en) 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US8327173B2 (en) 2007-12-17 2012-12-04 Nvidia Corporation Integrated circuit device core power down independent of peripheral device operation
US9088176B2 (en) 2007-12-17 2015-07-21 Nvidia Corporation Power management efficiency using DC-DC and linear regulators in conjunction
US20090153211A1 (en) * 2007-12-17 2009-06-18 Neil Hendin Integrated circuit device core power down independent of peripheral device operation
US20090153108A1 (en) * 2007-12-17 2009-06-18 Neil Hendin Power management efficiency using DC-DC and linear regulators in conjunction
US20090193424A1 (en) * 2008-01-25 2009-07-30 International Business Machines Corporation Method of processing instructions in pipeline-based processor and corresponding processor
US10254819B2 (en) 2008-01-25 2019-04-09 International Business Machines Corporation Apparatus and method for activating and shutting down enhanced pipeline stages and enhanced modules based on priority and performance requirements
US9348406B2 (en) 2008-01-25 2016-05-24 International Business Machines Corporation Apparatus and method for activating and shutting down enhanced modules within an activated pipeline stage based on performance requirements and module priority
US9563259B2 (en) 2008-01-25 2017-02-07 International Business Machines Corporation Apparatus and method for activating and shutting down individual enhanced pipeline stages based on stage priority and performance requirements
US9671856B2 (en) 2008-01-25 2017-06-06 International Business Machines Corporation Apparatus and method for activating and shutting down enhanced pipeline stages and enhanced modules based on priority and performance requirements
US20090204837A1 (en) * 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
US20090259863A1 (en) * 2008-04-10 2009-10-15 Nvidia Corporation Responding to interrupts while in a reduced power state
US8762759B2 (en) 2008-04-10 2014-06-24 Nvidia Corporation Responding to interrupts while in a reduced power state
US9423846B2 (en) 2008-04-10 2016-08-23 Nvidia Corporation Powered ring to maintain IO state independent of the core of an integrated circuit device
US9773344B2 (en) 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
US20130205144A1 (en) * 2012-02-06 2013-08-08 Jeffrey R. Eastlack Limitation of leakage power via dynamic enablement of execution units to accommodate varying performance demands
US9811874B2 (en) 2012-12-31 2017-11-07 Nvidia Corporation Frame times by dynamically adjusting frame buffer resolution
US10496409B2 (en) 2016-11-22 2019-12-03 The Arizona Board Of Regents Method and system for managing control of instruction and process execution in a programmable computing system

Similar Documents

Publication Publication Date Title
US5951689A (en) Microprocessor power control system
KR0145025B1 (en) Circuitry and method for reducing power consumption within an electronic circuitth
US5630143A (en) Microprocessor with externally controllable power management
US6694443B1 (en) System for controlling power of a microprocessor by asserting and de-asserting a control signal in response to condition associated with the microprocessor entering and exiting low power state respectively
US6631474B1 (en) System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
US5996083A (en) Microprocessor having software controllable power consumption
KR100193920B1 (en) Multiprocessor computer
US6745336B1 (en) System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating
US5666537A (en) Power down scheme for idle processor components
US5632037A (en) Microprocessor having power management circuitry with coprocessor support
EP0579369A1 (en) Central processing unit with reduced power consumption
JPH0850523A (en) Method and equipment for management of power consumption in computer system
US5991884A (en) Method for reducing peak power in dispatching instructions to multiple execution units
US5432947A (en) Power control technique for a computer system to provide adjustable storage and non-storage access times and an adjustable processor idle time
US6732216B2 (en) Peripheral switching device with multiple sets of registers for supporting an ACPI full-operation state
JP2001022582A (en) Microprocessor of low power consumption and microprocessor system
EP1241555B1 (en) Method in a microprocessor with hardware controlled power management and selectable input/output control pins
JPH10301659A (en) Microprocessor
JP2001195302A (en) Instruction loop buffer
US7197655B2 (en) Lowered PU power usage method and apparatus
US20040117677A1 (en) Throttle of an integrated device
JPH10301657A (en) Peripheral device of computer system

Legal Events

Date Code Title Description
AS Assignment

Owner name: VLSI TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:EVOY, DAVID R.;RHODEN, DESI;REEL/FRAME:008367/0784;SIGNING DATES FROM 19961219 TO 19961227

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: NXP B.V., NETHERLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PHILIPS SEMICONDUCTORS INC.;REEL/FRAME:018645/0779

Effective date: 20061130

Owner name: PHILIPS SEMICONDUCTORS VLSI INC., NEW YORK

Free format text: CHANGE OF NAME;ASSIGNOR:VLSI TECHNOLOGY, INC.;REEL/FRAME:018635/0570

Effective date: 19990702

AS Assignment

Owner name: PHILIPS SEMICONDUCTORS INC., NEW YORK

Free format text: CHANGE OF NAME;ASSIGNOR:PHILIPS SEMICONDUCTORS VLSI INC.;REEL/FRAME:018668/0255

Effective date: 19991220

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: HAYSTACK ALLEY, LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NXP B.V.;REEL/FRAME:022575/0968

Effective date: 20090302

FEPP Fee payment procedure

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: MOSAID TECHNOLOGIES INCORPORATED,CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HAYSTACK ALLEY, LLC;REEL/FRAME:024244/0822

Effective date: 20100327

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: ROYAL BANK OF CANADA, CANADA

Free format text: U.S. INTELLECTUAL PROPERTY SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) - SHORT FORM;ASSIGNORS:658276 N.B. LTD.;658868 N.B. INC.;MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:027512/0196

Effective date: 20111223

AS Assignment

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: CHANGE OF NAME;ASSIGNOR:MOSAID TECHNOLOGIES INCORPORATED;REEL/FRAME:032439/0638

Effective date: 20140101

AS Assignment

Owner name: CONVERSANT IP N.B. 276 INC., CANADA

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:033484/0344

Effective date: 20140611

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:033484/0344

Effective date: 20140611

Owner name: CONVERSANT IP N.B. 868 INC., CANADA

Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:ROYAL BANK OF CANADA;REEL/FRAME:033484/0344

Effective date: 20140611

AS Assignment

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC., CANADA

Free format text: CHANGE OF ADDRESS;ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033678/0096

Effective date: 20140820

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: CHANGE OF ADDRESS;ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033678/0096

Effective date: 20140820

AS Assignment

Owner name: ROYAL BANK OF CANADA, AS LENDER, CANADA

Free format text: U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033706/0367

Effective date: 20140611

Owner name: CPPIB CREDIT INVESTMENTS INC., AS LENDER, CANADA

Free format text: U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.;REEL/FRAME:033706/0367

Effective date: 20140611

AS Assignment

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC., CANADA

Free format text: RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:ROYAL BANK OF CANADA, AS LENDER;REEL/FRAME:047645/0424

Effective date: 20180731

Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.,

Free format text: RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS);ASSIGNOR:ROYAL BANK OF CANADA, AS LENDER;REEL/FRAME:047645/0424

Effective date: 20180731