CA2456220A1 - Controlling processor clock rate based on thread priority - Google Patents

Controlling processor clock rate based on thread priority Download PDF

Info

Publication number
CA2456220A1
CA2456220A1 CA002456220A CA2456220A CA2456220A1 CA 2456220 A1 CA2456220 A1 CA 2456220A1 CA 002456220 A CA002456220 A CA 002456220A CA 2456220 A CA2456220 A CA 2456220A CA 2456220 A1 CA2456220 A1 CA 2456220A1
Authority
CA
Canada
Prior art keywords
clock
processor
thread
variable frequency
frequency
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.)
Granted
Application number
CA002456220A
Other languages
French (fr)
Other versions
CA2456220C (en
Inventor
Kinney Bacon
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.)
Scientific Atlanta LLC
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2456220A1 publication Critical patent/CA2456220A1/en
Application granted granted Critical
Publication of CA2456220C publication Critical patent/CA2456220C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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

Abstract

The present invention varies the speed of processor execution, including associating a clock rate (135) with each thread in a plurality of threads (2 8a- 28n) and executing each thread in the plurality of threads on the processor (12) at the clock rate associated with the thread.

Claims (13)

1. A method for varying speed of processor execution, comprising:
associating a clock rate with each thread in a plurality of threads;
scheduling a thread to be executed from said plurality of threads;
setting the processor to execute at said clock rate associated with said thread; and executing said thread on said processor at said clock rate associated with said thread.
2. The method of claim 1, further comprising associating a priority with each thread; and determining which of said threads scheduled for execution has a highest priority.
3. The method of claim 2, wherein the step of associating a priority with each of said plurality of threads allows the same priority to be assigned to multiple threads.
4. The method of claim 2, wherein the step of scheduling a thread to be executed includes scheduling the thread with said highest priority.
5. The method of claim 2, wherein said clock rate is chosen from a set of discrete values, said priority is chosen from a set of discrete values, and each clock rate corresponds to a range of priorities,
6. The method of claim 1, further comprising executing an interrupt service routine, such that start of said interrupt service routine sets said processor to execute at a highest clock rate, and end of said interrupt service routine sets said processor to execute at a clock rate used by a thread that was interrupted by said interrupt service routine.
7. A device for varying speed of processor execution, comprising:
a variable frequency clock, wherein said variable frequency clock is capable of generating pulses of at least a highest frequency and a lowest frequency;
a processor connected to said variable frequency clock, where said processor controls the frequency of said variable frequency clock;
a memory configured to define a scheduler and a plurality of threads, where said scheduler selects a thread for execution and sets frequency of said variable frequency clock before executing said thread on said processor; and a local interface connecting said processor and said memory.
8. The device of claim 7, further comprising:
interrupt logic comprising:
a plurality of interrupt inputs; and logic configured to control said variable frequency clock such that said variable frequency clock outputs a clock signal at said highest clock frequency when any one of said plurality of interrupt inputs is asserted.
9. The device of claim 7, wherein said local interface uses said variable frequency clock to provide clocking signal to said memory.
10. The device of claim 7, wherein said variable frequency clock comprises:
a clock generator capable of generating pulses of at least a highest frequency and a lowest frequency;
a divider connected to said clock generator; and a multiplexer connected to said divider, where the output of said multiplexer provides the clock input to said processor, and said processor selects the output of said multiplexer.
11. A processor-based system comprising:
a variable frequency clock, wherein said variable frequency clock is capable of generating pulses of at least a highest frequency and a lowest frequency;
a processor connected to said variable frequency clock, where said processor controls the frequency of said variable frequency clock;
a memory configured to define a scheduler and a plurality of threads, where said scheduler selects a thread for execution and sets frequency of said variable frequency clock before executing said thread on said processor; and a local interface connecting said processor and said memory.
12. The system of claim 11, wherein the system is a set-top terminal for cable television.
13. The system of claim 11, wherein the system is a conditional access module used in conjunction with a set-top terminal for cable television.
CA002456220A 2001-08-02 2002-07-25 Controlling processor clock rate based on thread priority Expired - Fee Related CA2456220C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/920,692 2001-08-02
US09/920,692 US6622253B2 (en) 2001-08-02 2001-08-02 Controlling processor clock rate based on thread priority
PCT/US2002/023658 WO2003012610A1 (en) 2001-08-02 2002-07-25 Controlling processor clock rate based on thread priority

Publications (2)

Publication Number Publication Date
CA2456220A1 true CA2456220A1 (en) 2003-02-13
CA2456220C CA2456220C (en) 2009-12-22

Family

ID=25444222

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002456220A Expired - Fee Related CA2456220C (en) 2001-08-02 2002-07-25 Controlling processor clock rate based on thread priority

Country Status (5)

Country Link
US (1) US6622253B2 (en)
EP (1) EP1421462A4 (en)
CA (1) CA2456220C (en)
DE (1) DE02752579T1 (en)
WO (1) WO2003012610A1 (en)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3722809A1 (en) * 1987-07-10 1989-01-19 Hoechst Ag 3-DESMETHYL-4-FLUOR-MEVALONIC ACID DERIVATIVES, METHOD FOR THE PRODUCTION THEREOF, PHARMACEUTICAL PREPARATIONS BASED ON THESE COMPOUNDS, THEIR USE AND INTERMEDIATE PRODUCTS
US7814350B2 (en) * 2002-10-03 2010-10-12 Via Technologies, Inc. Microprocessor with improved thermal monitoring and protection mechanism
US7290156B2 (en) * 2003-12-17 2007-10-30 Via Technologies, Inc. Frequency-voltage mechanism for microprocessor power management
US7774627B2 (en) * 2002-10-03 2010-08-10 Via Technologies, Inc. Microprocessor capable of dynamically increasing its performance in response to varying operating temperature
US7698583B2 (en) * 2002-10-03 2010-04-13 Via Technologies, Inc. Microprocessor capable of dynamically reducing its power consumption in response to varying operating temperature
US7770042B2 (en) * 2002-10-03 2010-08-03 Via Technologies, Inc. Microprocessor with improved performance during P-state transitions
US7346791B2 (en) * 2003-03-26 2008-03-18 Matsushita Electric Industrial Co., Ltd. Method for controlling a clock frequency of an information processor in accordance with the detection of a start and a end of a specific processing section
US7013400B2 (en) * 2003-04-24 2006-03-14 International Business Machines Corporation Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode
JP4025260B2 (en) * 2003-08-14 2007-12-19 株式会社東芝 Scheduling method and information processing system
US20050097554A1 (en) * 2003-11-03 2005-05-05 Burden David C. Charge rationing aware scheduler
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US7401644B2 (en) * 2004-03-26 2008-07-22 Hewlett-Packard Development Company, L.P. Computer systems and related methods for cooling such systems
JP4095576B2 (en) * 2004-05-17 2008-06-04 株式会社東芝 General-purpose logic circuit device using programmable logic circuit
US7526661B2 (en) * 2004-12-02 2009-04-28 Intel Corporation Performance state-based thread management
US7853777B2 (en) * 2005-02-04 2010-12-14 Mips Technologies, Inc. Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7506140B2 (en) * 2005-02-04 2009-03-17 Mips Technologies, Inc. Return data selector employing barrel-incrementer-based round-robin apparatus
US7664936B2 (en) * 2005-02-04 2010-02-16 Mips Technologies, Inc. Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7490230B2 (en) * 2005-02-04 2009-02-10 Mips Technologies, Inc. Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
US7752627B2 (en) 2005-02-04 2010-07-06 Mips Technologies, Inc. Leaky-bucket thread scheduler in a multithreading microprocessor
US7657891B2 (en) 2005-02-04 2010-02-02 Mips Technologies, Inc. Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US7657883B2 (en) * 2005-02-04 2010-02-02 Mips Technologies, Inc. Instruction dispatch scheduler employing round-robin apparatus supporting multiple thread priorities for use in multithreading microprocessor
US7631130B2 (en) * 2005-02-04 2009-12-08 Mips Technologies, Inc Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
US7613904B2 (en) * 2005-02-04 2009-11-03 Mips Technologies, Inc. Interfacing external thread prioritizing policy enforcing logic with customer modifiable register to processor internal scheduler
US20070074217A1 (en) * 2005-09-26 2007-03-29 Ryan Rakvic Scheduling optimizations for user-level threads
US7689838B2 (en) * 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
KR100731983B1 (en) * 2005-12-29 2007-06-25 전자부품연구원 Hardwired scheduler for low power wireless device processor and method of scheduling using the same
US8108863B2 (en) * 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US7721127B2 (en) * 2006-03-28 2010-05-18 Mips Technologies, Inc. Multithreaded dynamic voltage-frequency scaling microprocessor
US8250394B2 (en) * 2006-03-31 2012-08-21 Stmicroelectronics International N.V. Varying the number of generated clock signals and selecting a clock signal in response to a change in memory fill level
US7990989B2 (en) * 2006-09-16 2011-08-02 Mips Technologies, Inc. Transaction selector employing transaction queue group priorities in multi-port switch
US7760748B2 (en) * 2006-09-16 2010-07-20 Mips Technologies, Inc. Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch
US7773621B2 (en) * 2006-09-16 2010-08-10 Mips Technologies, Inc. Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch
US7961745B2 (en) * 2006-09-16 2011-06-14 Mips Technologies, Inc. Bifurcated transaction selector supporting dynamic priorities in multi-port switch
US8069327B2 (en) * 2006-12-28 2011-11-29 Intel Corporation Commands scheduled for frequency mismatch bubbles
US20080315862A1 (en) * 2007-06-21 2008-12-25 Qualitau, Inc. Smart parallel controller for semiconductor experiments
GB2454914B (en) * 2007-11-22 2012-07-25 Icera Inc Clock control
JP2009301500A (en) * 2008-06-17 2009-12-24 Nec Electronics Corp Task processing system and task processing method
US8516293B2 (en) * 2009-11-05 2013-08-20 Novell, Inc. System and method for implementing a cloud computer
US8397238B2 (en) * 2009-12-08 2013-03-12 Qualcomm Incorporated Thread allocation and clock cycle adjustment in an interleaved multi-threaded processor
WO2012010927A1 (en) * 2010-07-20 2012-01-26 Freescale Semiconductor, Inc. Clock circuit for providing an electronic device with a clock signal, electronic device with a clock circuit and method for providing an electronic device with a clock signal
US8782454B2 (en) * 2011-10-28 2014-07-15 Apple Inc. System and method for managing clock speed based on task urgency
US9348359B2 (en) * 2013-01-31 2016-05-24 Red Hat, Inc. Updating a desired tick rate for a kernel
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US10503238B2 (en) * 2016-11-01 2019-12-10 Microsoft Technology Licensing, Llc Thread importance based processor core parking and frequency selection
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10235178B2 (en) * 2017-06-02 2019-03-19 Microsoft Technology Licensing, Llc Performance scaling for binary translation
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
CN109408846B (en) 2017-08-18 2024-03-08 三星电子株式会社 Integrated circuit, non-transitory computer readable medium, and computing system
US11280937B2 (en) 2017-12-10 2022-03-22 Magic Leap, Inc. Anti-reflective coatings on optical waveguides
AU2018392482A1 (en) 2017-12-20 2020-07-02 Magic Leap, Inc. Insert for augmented reality viewing device
WO2019178567A1 (en) 2018-03-15 2019-09-19 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
EP3803450A4 (en) 2018-05-31 2021-08-18 Magic Leap, Inc. Radar head pose localization
WO2020010097A1 (en) 2018-07-02 2020-01-09 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
WO2020010226A1 (en) 2018-07-03 2020-01-09 Magic Leap, Inc. Systems and methods for virtual and augmented reality
JP7426982B2 (en) 2018-07-24 2024-02-02 マジック リープ, インコーポレイテッド Temperature-dependent calibration of movement sensing devices
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
CN112740665A (en) 2018-08-02 2021-04-30 奇跃公司 Observation system for interpupillary distance compensation based on head movement
JP7438188B2 (en) 2018-08-03 2024-02-26 マジック リープ, インコーポレイテッド Unfused pose-based drift correction of fused poses of totems in user interaction systems
US10914949B2 (en) 2018-11-16 2021-02-09 Magic Leap, Inc. Image size triggered clarification to maintain image sharpness
CN113518961A (en) * 2019-02-06 2021-10-19 奇跃公司 Targeted intent based clock speed determination and adjustment to limit total heat generated by multiple processors
CN113544766A (en) 2019-03-12 2021-10-22 奇跃公司 Registering local content between first and second augmented reality viewers
CN114127837A (en) 2019-05-01 2022-03-01 奇跃公司 Content providing system and method
CN114174895A (en) 2019-07-26 2022-03-11 奇跃公司 System and method for augmented reality
WO2021097323A1 (en) 2019-11-15 2021-05-20 Magic Leap, Inc. A viewing system for use in a surgical environment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US6158012A (en) 1989-10-30 2000-12-05 Texas Instruments Incorporated Real-time power conservation and thermal management for computers
US5560017A (en) * 1990-11-09 1996-09-24 Wang Laboratories, Inc. System with clock frequency controller responsive to interrupt independent of software routine and software loop repeatedly executing instruction to slow down system clock
US5623647A (en) * 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US6298448B1 (en) * 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6687838B2 (en) 2000-12-07 2004-02-03 Intel Corporation Low-power processor hint, such as from a PAUSE instruction

Also Published As

Publication number Publication date
CA2456220C (en) 2009-12-22
EP1421462A1 (en) 2004-05-26
US6622253B2 (en) 2003-09-16
US20030028816A1 (en) 2003-02-06
DE02752579T1 (en) 2004-10-21
WO2003012610A1 (en) 2003-02-13
EP1421462A4 (en) 2007-04-04

Similar Documents

Publication Publication Date Title
CA2456220A1 (en) Controlling processor clock rate based on thread priority
JP3794712B2 (en) Data processing circuit having self-timed instruction execution unit
US10467053B2 (en) Multi-thread processor with rescheduling when threads are nondispatchable
US9281718B2 (en) On-board power supply monitor and power control system
US20040003027A1 (en) Debug interface for an event timer apparatus
US8504753B2 (en) Suspendable interrupts for processor idle management
EP3571585B1 (en) Method and apparatus for implementing heterogeneous frequency operation and scheduling task of heterogeneous frequency cpu
US8539203B2 (en) Multi-thread processor selecting threads on different schedule pattern for interrupt processing and normal operation
KR101486027B1 (en) Timed ports
EP1650673B1 (en) Method and system for creating an extented bit timer on a time processing unit
US20140089938A1 (en) Multi-thread processor and its hardware thread scheduling method
GB2335293A (en) Reducing power consumption in a self-timed system
US20140029625A1 (en) Integrated circuit device and methods for performing cut-through forwarding
US6434708B1 (en) Programmable timer & methods for scheduling time slices executed by a controller circuit
US7120718B2 (en) Method for generating interrupt commands in a microprocessor system and relative priority interrupt controller
KR20010043447A (en) Method for analog-digital conversion of analog signals and corresponding analog-digital converter array
EP2490100A1 (en) Suspendable interrupts for processor idle management
US8643523B1 (en) Sharing embedded ADC resources across hardware and software sample-conversion queues with improved availability of the resources
CN114035926A (en) Application thread scheduling method and device, storage medium and electronic equipment
US6147635A (en) Timer for A/D converter
JPH08139575A (en) Pulse output circuit
EP1499950A2 (en) Output rate change
CN116795745A (en) Multi-channel DMA priority arbitration circuit and method with configurable mode
CN107621974B (en) Interrupt request distribution device and method for operating same
JPH09114540A (en) Clock generating device

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20180725