WO2006113420A3 - System and method wherein conditional instructions unconditionally provide output - Google Patents

System and method wherein conditional instructions unconditionally provide output Download PDF

Info

Publication number
WO2006113420A3
WO2006113420A3 PCT/US2006/014042 US2006014042W WO2006113420A3 WO 2006113420 A3 WO2006113420 A3 WO 2006113420A3 US 2006014042 W US2006014042 W US 2006014042W WO 2006113420 A3 WO2006113420 A3 WO 2006113420A3
Authority
WO
WIPO (PCT)
Prior art keywords
target
condition
output
satisfied
instruction
Prior art date
Application number
PCT/US2006/014042
Other languages
French (fr)
Other versions
WO2006113420A2 (en
Inventor
Thomas Andrew Sartorius
James Norris Dieffenderfer
Jeffrey Todd Bridges
Kenneth Alan Dockser
Michael Scott Mcilvaine
Rodney Wayne Smith
Original Assignee
Qualcomm Inc
Thomas Andrew Sartorius
James Norris Dieffenderfer
Jeffrey Todd Bridges
Kenneth Alan Dockser
Michael Scott Mcilvaine
Rodney Wayne Smith
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, Thomas Andrew Sartorius, James Norris Dieffenderfer, Jeffrey Todd Bridges, Kenneth Alan Dockser, Michael Scott Mcilvaine, Rodney Wayne Smith filed Critical Qualcomm Inc
Priority to EP06750153.6A priority Critical patent/EP1869547B1/en
Priority to BRPI0610222-0A priority patent/BRPI0610222A2/en
Priority to CN2006800203461A priority patent/CN101194225B/en
Priority to JP2008506733A priority patent/JP2008537231A/en
Publication of WO2006113420A2 publication Critical patent/WO2006113420A2/en
Publication of WO2006113420A3 publication Critical patent/WO2006113420A3/en
Priority to IL186632A priority patent/IL186632A/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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

A conditional instruction architected to receive one or more operands as inputs, to output to a target the result of an operation performed on the operands if a condition is satisfied, and to not provide an output if the condition is not satisfied, is executed so that it unconditionally provides an output to the target. The conditional instruction obtains the prior value of the target (that is, the value produced by the most recent instruction preceding the conditional instruction that updated that target). The condition is evaluated. If the condition is satisfied, an operation is performed and the result of the operation output to the target. If the condition is not satisfied, the prior value is output to the target. Subsequent instructions may rely on the target as an operand source (whether written to a register or forwarded to the instruction), prior to the condition evaluation.
PCT/US2006/014042 2005-04-14 2006-04-14 System and method wherein conditional instructions unconditionally provide output WO2006113420A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP06750153.6A EP1869547B1 (en) 2005-04-14 2006-04-14 System and method wherein conditional instructions unconditionally provide output
BRPI0610222-0A BRPI0610222A2 (en) 2005-04-14 2006-04-14 system and method in which conditional statements give unconditional output
CN2006800203461A CN101194225B (en) 2005-04-14 2006-04-14 System and method wherein conditional instructions unconditionally provide output
JP2008506733A JP2008537231A (en) 2005-04-14 2006-04-14 System and method in which conditional instructions provide output unconditionally
IL186632A IL186632A (en) 2005-04-14 2007-10-14 System and method wherein conditional instructions unconditionally provide output

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/106,803 2005-04-14
US11/106,803 US7624256B2 (en) 2005-04-14 2005-04-14 System and method wherein conditional instructions unconditionally provide output

Publications (2)

Publication Number Publication Date
WO2006113420A2 WO2006113420A2 (en) 2006-10-26
WO2006113420A3 true WO2006113420A3 (en) 2006-12-21

Family

ID=37016156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/014042 WO2006113420A2 (en) 2005-04-14 2006-04-14 System and method wherein conditional instructions unconditionally provide output

Country Status (9)

Country Link
US (1) US7624256B2 (en)
EP (1) EP1869547B1 (en)
JP (3) JP2008537231A (en)
KR (1) KR100953856B1 (en)
CN (1) CN101194225B (en)
BR (1) BRPI0610222A2 (en)
IL (1) IL186632A (en)
TW (1) TWI317906B (en)
WO (1) WO2006113420A2 (en)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624256B2 (en) * 2005-04-14 2009-11-24 Qualcomm Incorporated System and method wherein conditional instructions unconditionally provide output
US8078846B2 (en) * 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
CN101324838A (en) * 2008-07-31 2008-12-17 华为技术有限公司 Method and apparatus for executing instruction
US8140780B2 (en) * 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
JP5072889B2 (en) * 2009-03-16 2012-11-14 株式会社東芝 Precondition generation apparatus and postcondition generation apparatus, and methods thereof
GB2480285A (en) * 2010-05-11 2011-11-16 Advanced Risc Mach Ltd Conditional compare instruction which sets a condition code when it is not executed
GB2484654B (en) * 2010-10-12 2013-10-09 Advanced Risc Mach Ltd Conditional selection of data elements
US9032189B2 (en) * 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US8924695B2 (en) * 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
JP6422381B2 (en) * 2015-03-18 2018-11-14 ルネサスエレクトロニクス株式会社 Processor, program code conversion device and software
JP7081922B2 (en) * 2017-12-28 2022-06-07 株式会社バンダイナムコエンターテインメント Programs, game consoles and methods for running games
CN111209039B (en) * 2018-11-21 2022-08-02 展讯通信(上海)有限公司 Instruction processing method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066151A1 (en) * 2003-09-19 2005-03-24 Sailesh Kottapalli Method and apparatus for handling predicated instructions in an out-of-order processor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2933027B2 (en) * 1996-08-30 1999-08-09 日本電気株式会社 Multiple instruction parallel issue / execution management device
US6009512A (en) * 1997-10-27 1999-12-28 Advanced Micro Devices, Inc. Mechanism for forwarding operands based on predicated instructions
US6170052B1 (en) * 1997-12-31 2001-01-02 Intel Corporation Method and apparatus for implementing predicated sequences in a processor with renaming
US6449713B1 (en) * 1998-11-18 2002-09-10 Compaq Information Technologies Group, L.P. Implementation of a conditional move instruction in an out-of-order processor
US20020073301A1 (en) * 2000-12-07 2002-06-13 International Business Machines Corporation Hardware for use with compiler generated branch information
US20020112148A1 (en) * 2000-12-15 2002-08-15 Perry Wang System and method for executing predicated code out of order
US6883089B2 (en) * 2000-12-30 2005-04-19 Intel Corporation Method and apparatus for processing a predicated instruction using limited predicate slip
US7624256B2 (en) * 2005-04-14 2009-11-24 Qualcomm Incorporated System and method wherein conditional instructions unconditionally provide output

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066151A1 (en) * 2003-09-19 2005-03-24 Sailesh Kottapalli Method and apparatus for handling predicated instructions in an out-of-order processor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEIHAW CHUANG ET AL: "Phi-predication for light-weight if-conversion", CODE GENERATION AND OPTIMIZATION, 2003. CGO 2003. INTERNATIONAL SYMPOSIUM ON 23-26 MAR 2003, PISCATAWAY, NJ, USA,IEEE, 23 March 2003 (2003-03-23), pages 179 - 190, XP010638080, ISBN: 0-7695-1913-X *
ZHENGHONG WANG ET AL INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS: "Micro-architecture issues of predicated execution", 9 November 2003, CONFERENCE RECORD OF THE 37TH. ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS, & COMPUTERS. PACIFIC GROOVE, CA, NOV. 9 - 12, 2003, ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, NEW YORK, NY : IEEE, US, PAGE(S) 349-354, ISBN: 0-7803-8104-1, XP010701857 *

Also Published As

Publication number Publication date
WO2006113420A2 (en) 2006-10-26
KR20070121842A (en) 2007-12-27
EP1869547A2 (en) 2007-12-26
TW200705266A (en) 2007-02-01
TWI317906B (en) 2009-12-01
BRPI0610222A2 (en) 2010-06-08
US7624256B2 (en) 2009-11-24
CN101194225B (en) 2013-10-23
EP1869547B1 (en) 2016-09-21
IL186632A (en) 2012-04-30
US20060236078A1 (en) 2006-10-19
JP2012212433A (en) 2012-11-01
JP6009608B2 (en) 2016-10-19
JP2015164048A (en) 2015-09-10
IL186632A0 (en) 2008-01-20
JP2008537231A (en) 2008-09-11
CN101194225A (en) 2008-06-04
KR100953856B1 (en) 2010-04-20

Similar Documents

Publication Publication Date Title
WO2006113420A3 (en) System and method wherein conditional instructions unconditionally provide output
WO2007095397A3 (en) Programmable processing unit
TW200709039A (en) System and method for a floating point unit with feedback prior to normalization and rounding
AU2001231182A1 (en) Method and apparatus for instruction set architecture having dyadic digital signal processing instructions
WO2008074382A8 (en) Obfuscating computer program code
WO2012138950A3 (en) Conditional load instructions in an out-of-order execution microprocessor
WO2005086746A3 (en) Programmable-logic acceleraton of data processing applications
WO2006081049A3 (en) Improving branch prediction accuracy in a processor that supports speculative execution
WO2009133354A3 (en) System for providing trace data in a data processor having a pipelined architecture
WO2008054835A3 (en) Computer systems with lightweight multi-threaded architectures
WO2007001521A3 (en) Real-time processor
IL185066A0 (en) Conditional instruction execution via emissary instruction for condition evaluation
WO2006094196A3 (en) Method and apparatus for power reduction in an heterogeneously- multi-pipelined processor
WO2007008880A3 (en) Changing code execution path using kernel mode redirection
BRPI0608750A2 (en) method and system issue and process mixed superscalar and vliw instructions
JP2017142799A5 (en)
TW200500944A (en) Apparatus and method for managing a processor pipeline in response to exceptions
TW200636581A (en) Methods and apparatus for instruction set emulation
TW200627145A (en) Updating instruction fault status register
WO2009055752A3 (en) Model-driven, repository-based application monitoring system
WO2008021607A3 (en) Selective branch target buffer (btb) allocation
WO2007130803A3 (en) Controlled-precision iterative arithmetic logic unit
WO2006116540A3 (en) An application specific reconfigurable network processor
WO2003090067A3 (en) System for expanded instruction encoding and method thereof
WO2008042296A3 (en) Twice issued conditional move instruction, and applications thereof

Legal Events

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

Ref document number: 200680020346.1

Country of ref document: CN

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

Ref document number: 186632

Country of ref document: IL

ENP Entry into the national phase

Ref document number: 2008506733

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2006750153

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006750153

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU

WWE Wipo information: entry into national phase

Ref document number: 1020077026476

Country of ref document: KR

ENP Entry into the national phase

Ref document number: PI0610222

Country of ref document: BR

Kind code of ref document: A2