WO2006096568A3 - Power saving methods and apparatus for variable length instructions - Google Patents

Power saving methods and apparatus for variable length instructions Download PDF

Info

Publication number
WO2006096568A3
WO2006096568A3 PCT/US2006/007758 US2006007758W WO2006096568A3 WO 2006096568 A3 WO2006096568 A3 WO 2006096568A3 US 2006007758 W US2006007758 W US 2006007758W WO 2006096568 A3 WO2006096568 A3 WO 2006096568A3
Authority
WO
WIPO (PCT)
Prior art keywords
processor
instruction cache
instructions
variable length
length instructions
Prior art date
Application number
PCT/US2006/007758
Other languages
French (fr)
Other versions
WO2006096568A2 (en
Inventor
Brian Michael Stempel
James Norris Dieffenderfer
Jeffrey Todd Bridges
Rodney Wayne Smith
Thomas Andrew Sartorius
Original Assignee
Qualcomm Inc
Brian Michael Stempel
James Norris Dieffenderfer
Jeffrey Todd Bridges
Rodney Wayne Smith
Thomas Andrew Sartorius
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 Qualcomm Inc, Brian Michael Stempel, James Norris Dieffenderfer, Jeffrey Todd Bridges, Rodney Wayne Smith, Thomas Andrew Sartorius filed Critical Qualcomm Inc
Priority to DE602006014156T priority Critical patent/DE602006014156D1/en
Priority to AT06736989T priority patent/ATE467170T1/en
Priority to EP06736989A priority patent/EP1904922B1/en
Priority to CN2006800137440A priority patent/CN101164040B/en
Priority to JP2007558296A priority patent/JP4791495B2/en
Priority to MX2007010773A priority patent/MX2007010773A/en
Publication of WO2006096568A2 publication Critical patent/WO2006096568A2/en
Publication of WO2006096568A3 publication Critical patent/WO2006096568A3/en
Priority to IL185594A priority patent/IL185594A0/en

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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • 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/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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

A processor capable of fetching and executing variable length instructions is described having instructions of at least two lengths. The processor operates in multiple modes. One of the modes restricts instructions that can be fetched and executed to the longer length instructions. An instruction cache is used for storing variable length instructions and their associated predecode bit fields in an instruction cache line and storing the instruction address and processor operating mode state information at the time of the fetch in a tag line. The processor operating mode state information indicates the program specified mode of operation of the processor. The processor fetches instructions from the instruction cache for execution. As a result of an instruction fetch operation, the instruction cache may selectively enable the writing of predecode bit fields in the instruction cache and may selectively enable the reading of predecode bit fields stored in the instruction cache based on the processor state at the time of the fetch.
PCT/US2006/007758 2005-03-04 2006-03-03 Power saving methods and apparatus for variable length instructions WO2006096568A2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
DE602006014156T DE602006014156D1 (en) 2005-03-04 2006-03-03 POWER SAVING METHOD AND DEVICES FOR INSTRUCTIONS OF VARIABLE LENGTH
AT06736989T ATE467170T1 (en) 2005-03-04 2006-03-03 POWER SAVING METHOD AND DEVICES FOR VARIABLE LENGTH INSTRUCTIONS
EP06736989A EP1904922B1 (en) 2005-03-04 2006-03-03 Power saving methods and apparatus for variable length instructions
CN2006800137440A CN101164040B (en) 2005-03-04 2006-03-03 Power saving methods and apparatus for variable length instructions
JP2007558296A JP4791495B2 (en) 2005-03-04 2006-03-03 Power saving method and apparatus for selectively enabling cache bits based on known processor state
MX2007010773A MX2007010773A (en) 2005-03-04 2006-03-03 Power saving methods and apparatus for variable length instructions.
IL185594A IL185594A0 (en) 2005-03-04 2007-08-29 Power saving methods and apparatus to selectively enable cache bits based on known processor state

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/073,284 US7421568B2 (en) 2005-03-04 2005-03-04 Power saving methods and apparatus to selectively enable cache bits based on known processor state
US11/073,284 2005-03-04

Publications (2)

Publication Number Publication Date
WO2006096568A2 WO2006096568A2 (en) 2006-09-14
WO2006096568A3 true WO2006096568A3 (en) 2007-01-11

Family

ID=36695266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/007758 WO2006096568A2 (en) 2005-03-04 2006-03-03 Power saving methods and apparatus for variable length instructions

Country Status (11)

Country Link
US (1) US7421568B2 (en)
EP (1) EP1904922B1 (en)
JP (1) JP4791495B2 (en)
KR (1) KR100942408B1 (en)
CN (1) CN101164040B (en)
AT (1) ATE467170T1 (en)
DE (1) DE602006014156D1 (en)
ES (1) ES2341993T3 (en)
IL (1) IL185594A0 (en)
MX (1) MX2007010773A (en)
WO (1) WO2006096568A2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769983B2 (en) 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US7836285B2 (en) * 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US8898437B2 (en) * 2007-11-02 2014-11-25 Qualcomm Incorporated Predecode repair cache for instructions that cross an instruction cache line
US10055227B2 (en) 2012-02-07 2018-08-21 Qualcomm Incorporated Using the least significant bits of a called function's address to switch processor modes
US20140244932A1 (en) * 2013-02-27 2014-08-28 Advanced Micro Devices, Inc. Method and apparatus for caching and indexing victim pre-decode information
US9588845B2 (en) 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
US10235232B2 (en) 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
US9916251B2 (en) 2014-12-01 2018-03-13 Samsung Electronics Co., Ltd. Display driving apparatus and cache managing method thereof
US9727353B2 (en) * 2015-10-30 2017-08-08 International Business Machines Corporation Simultaneously capturing status information for multiple operating modes
CN115878187B (en) * 2023-01-16 2023-05-02 北京微核芯科技有限公司 Processor instruction processing apparatus and method supporting compressed instructions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644744A (en) * 1994-12-21 1997-07-01 International Business Machines Corporation Superscaler instruction pipeline having boundary identification logic for variable length instructions
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US20040107330A1 (en) * 2002-12-02 2004-06-03 Lsi Logic Corporation Read/modify/write registers

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115500A (en) * 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
JPH04257948A (en) * 1991-02-13 1992-09-14 Fujitsu Ltd Cache memory, system equipped with the cache memory and instruction decode method for the system
US5499204A (en) * 1994-07-05 1996-03-12 Motorola, Inc. Memory cache with interlaced data and method of operation
JP2000506635A (en) * 1995-10-06 2000-05-30 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド Instruction predecode and multiple instruction decode processors
US6092182A (en) * 1998-06-24 2000-07-18 Advanced Micro Devices, Inc. Using ECC/parity bits to store predecode information
US6275927B2 (en) * 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes
US6253309B1 (en) * 1998-09-21 2001-06-26 Advanced Micro Devices, Inc. Forcing regularity into a CISC instruction set by padding instructions
US6496923B1 (en) * 1999-12-17 2002-12-17 Intel Corporation Length decode to detect one-byte prefixes and branch
US6804799B2 (en) * 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache
US7058827B2 (en) * 2001-07-18 2006-06-06 Intel Corporation Power saving circuit has an input line coupled to an external host and a keeper to hold the line in a weakly held state

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644744A (en) * 1994-12-21 1997-07-01 International Business Machines Corporation Superscaler instruction pipeline having boundary identification logic for variable length instructions
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US20040107330A1 (en) * 2002-12-02 2004-06-03 Lsi Logic Corporation Read/modify/write registers

Also Published As

Publication number Publication date
DE602006014156D1 (en) 2010-06-17
IL185594A0 (en) 2008-01-06
CN101164040A (en) 2008-04-16
KR20070116058A (en) 2007-12-06
MX2007010773A (en) 2007-11-08
US7421568B2 (en) 2008-09-02
KR100942408B1 (en) 2010-02-17
CN101164040B (en) 2010-04-14
EP1904922B1 (en) 2010-05-05
ES2341993T3 (en) 2010-06-30
JP2008532187A (en) 2008-08-14
EP1904922A2 (en) 2008-04-02
WO2006096568A2 (en) 2006-09-14
ATE467170T1 (en) 2010-05-15
JP4791495B2 (en) 2011-10-12
US20060200686A1 (en) 2006-09-07

Similar Documents

Publication Publication Date Title
WO2006096568A3 (en) Power saving methods and apparatus for variable length instructions
US9396117B2 (en) Instruction cache power reduction
US8959320B2 (en) Preventing update training of first predictor with mismatching second predictor for branch instructions with alternating pattern hysteresis
IL183283A0 (en) Pre-decode error handling via branch correction
WO2009087162A3 (en) Rotate then operate on selected bits facility and instructions therefore
WO2006125219A3 (en) Caching instructions for a multiple-state processor
WO2006007075A3 (en) Selectively performing fetches for store operations during speculative execution
WO2007085011A3 (en) Efficient memory hierarchy management
WO2008016849A3 (en) Method and apparatus for prefetching non-sequential instruction addresses
JP2009536770A (en) Branch address cache based on block
US8131977B2 (en) Microprocessor inhibiting instruction storage in cache and not decoding based on pre-analysis information to reduce power consumption
WO2005026928A3 (en) Power saving operation of an apparatus with a cache memory
TW200508967A (en) Method and data processor with reduced stalling due to operand dependencies
WO2006110886A3 (en) Instruction memory unit and method of operation
GB2442908A (en) Computer having dynamically-changeable instruction set in real time
WO2006120408A3 (en) Memory caching in data processing
JP2009516254A (en) Processing system and method for executing instructions
US10853074B2 (en) Table fetch processor instruction using table number to base address translation
WO2013121516A1 (en) Data processing device
WO2006127856A3 (en) Operand width indication for micro-sequence processing
US10031754B2 (en) Kick-started run-to-completion processor having no instruction counter
CN114610391A (en) Data loading method and related device of RISC-V vector processor
KR20140134421A (en) Dual instruction fetch apparatus and method
JP2009176177A (en) Programmable controller
US20140372735A1 (en) Software controlled instruction prefetch buffering

Legal Events

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

Ref document number: 200680013744.0

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: 185594

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: MX/a/2007/010773

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: 2007558296

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 1469/MUMNP/2007

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 1020077022475

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: RU

WWE Wipo information: entry into national phase

Ref document number: 2006736989

Country of ref document: EP