EP1267255A3 - Conditional branch execution in a processor with multiple data paths - Google Patents

Conditional branch execution in a processor with multiple data paths Download PDF

Info

Publication number
EP1267255A3
EP1267255A3 EP02254001A EP02254001A EP1267255A3 EP 1267255 A3 EP1267255 A3 EP 1267255A3 EP 02254001 A EP02254001 A EP 02254001A EP 02254001 A EP02254001 A EP 02254001A EP 1267255 A3 EP1267255 A3 EP 1267255A3
Authority
EP
European Patent Office
Prior art keywords
indicators
state
processor
field
multiple data
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.)
Ceased
Application number
EP02254001A
Other languages
German (de)
French (fr)
Other versions
EP1267255A2 (en
Inventor
Sophie Wilson
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.)
Broadcom Corp
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of EP1267255A2 publication Critical patent/EP1267255A2/en
Publication of EP1267255A3 publication Critical patent/EP1267255A3/en
Ceased 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30054Unconditional 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/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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061Multi-way branch instructions, e.g. CASE
    • 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

A method of conditionally executing branch instructions which comprise an opcode field defining a type of test to be applied to determine whether or not to execute a branch operation, a control field designating a control store holding a plurality of indicators and a destination field holding information on a branch target address. The method comprises
determining from the opcode field whether or not the test will check the state of one indicator or a plurality of indicators in the designated control store, accessing the designated control store to check the state of said one or said plurality of indicators depending on the determination, and generating a branch target address using information in the destination field in dependence on the state of the or each indicator checked.
EP02254001A 2001-06-11 2002-06-10 Conditional branch execution in a processor with multiple data paths Ceased EP1267255A3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29675801P 2001-06-11 2001-06-11
US296758P 2001-06-11

Publications (2)

Publication Number Publication Date
EP1267255A2 EP1267255A2 (en) 2002-12-18
EP1267255A3 true EP1267255A3 (en) 2003-05-02

Family

ID=23143419

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02254001A Ceased EP1267255A3 (en) 2001-06-11 2002-06-10 Conditional branch execution in a processor with multiple data paths

Country Status (2)

Country Link
US (1) US7861071B2 (en)
EP (1) EP1267255A3 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
US6986025B2 (en) * 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US7434036B1 (en) 2002-08-30 2008-10-07 Verisilicon Holdings Co. Ltd. System and method for executing software program instructions using a condition specified within a conditional execution instruction
US7299343B2 (en) * 2002-09-27 2007-11-20 Verisilicon Holdings (Cayman Islands) Co. Ltd. System and method for cooperative execution of multiple branching instructions in a processor
US20040064684A1 (en) * 2002-09-30 2004-04-01 Kalluri Seshagiri P. System and method for selectively updating pointers used in conditionally executed load/store with update instructions
US20060259752A1 (en) * 2005-05-13 2006-11-16 Jeremiassen Tor E Stateless Branch Prediction Scheme for VLIW Processor
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
US8677106B2 (en) * 2009-09-24 2014-03-18 Nvidia Corporation Unanimous branch instructions in a parallel thread processor
GB2474521B (en) * 2009-10-19 2014-10-15 Ublox Ag Program flow control
US8908564B2 (en) * 2010-06-28 2014-12-09 Avaya Inc. Method for Media Access Control address learning and learning rate suppression
US9696975B2 (en) * 2010-09-03 2017-07-04 International Business Machines Corporation Allocating register halves independently
US8924693B2 (en) * 2011-01-21 2014-12-30 Apple Inc. Predicting a result for a predicate-generating instruction when processing vector instructions
CN111527485B (en) * 2017-11-03 2023-09-12 相干逻辑公司 memory network processor
US20240103860A1 (en) * 2022-09-26 2024-03-28 Advanced Micro Devices, Inc. Predicates for Processing-in-Memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0130381A2 (en) * 1983-06-30 1985-01-09 International Business Machines Corporation Mechanism for implementing one machine cycle executable branch-on-any-bit-in-any-register instructions in a primitive instruction set computing system
US6052776A (en) * 1996-10-18 2000-04-18 Hitachi, Ltd. Branch operation system where instructions are queued until preparations is ascertained to be completed and branch distance is considered as an execution condition
EP1089170A2 (en) * 1999-10-01 2001-04-04 Hitachi, Ltd. Processor architecture and method of processing branch control instructions

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3325785A (en) * 1964-12-18 1967-06-13 Ibm Efficient utilization of control storage and access controls therefor
US3958227A (en) * 1974-09-24 1976-05-18 International Business Machines Corporation Control store system with flexible control word selection
US4589065A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
US4748585A (en) 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US5056015A (en) 1988-03-23 1991-10-08 Du Pont Pixel Systems Limited Architectures for serial or parallel loading of writable control store
US5001662A (en) 1989-04-28 1991-03-19 Apple Computer, Inc. Method and apparatus for multi-gauge computation
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
GB2273377A (en) 1992-12-11 1994-06-15 Hughes Aircraft Co Multiple masks for array processors
DE4345028A1 (en) * 1993-05-06 1994-11-10 Hewlett Packard Co Device for reducing delays due to branching
JP2832899B2 (en) 1993-05-31 1998-12-09 松下電器産業株式会社 Data processing device and data processing method
AU677673B2 (en) 1993-10-12 1997-05-01 Samsung Electronics Co., Ltd. Method and apparatus for executing an atomic read-modify-write instruction
US5530825A (en) * 1994-04-15 1996-06-25 Motorola, Inc. Data processor with branch target address cache and method of operation
US5568631A (en) 1994-05-05 1996-10-22 International Business Machines Corporation Multiprocessor system with a shared control store accessed with predicted addresses
US5926642A (en) 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
JP3442225B2 (en) * 1996-07-11 2003-09-02 株式会社日立製作所 Arithmetic processing unit
JPH1049368A (en) * 1996-07-30 1998-02-20 Mitsubishi Electric Corp Microporcessor having condition execution instruction
US5838984A (en) 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6338137B1 (en) 1998-05-29 2002-01-08 Texas Instruments Incorporated Data processor having memory access unit with predetermined number of instruction cycles between activation and initial data transfer
US6240510B1 (en) * 1998-08-06 2001-05-29 Intel Corporation System for processing a cluster of instructions where the instructions are issued to the execution units having a priority order according to a template associated with the cluster of instructions
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6282628B1 (en) * 1999-02-24 2001-08-28 International Business Machines Corporation Method and system for a result code for a single-instruction multiple-data predicate compare operation
US6675291B1 (en) 1999-05-31 2004-01-06 International Business Machines Corporation Hardware device for parallel processing of any instruction within a set of instructions
GB2352536A (en) 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
DE19942836C2 (en) 1999-09-08 2003-04-17 Porsche Ag Disc element for a wheel bolt or wheel nut of a motor vehicle
US6484255B1 (en) * 1999-09-20 2002-11-19 Intel Corporation Selective writing of data elements from packed data based upon a mask using predication
US6622238B1 (en) * 2000-01-24 2003-09-16 Hewlett-Packard Development Company, L.P. System and method for providing predicate data
US6748521B1 (en) 2000-02-18 2004-06-08 Texas Instruments Incorporated Microprocessor with instruction for saturating and packing data
US6757819B1 (en) 2000-02-18 2004-06-29 Texas Instruments Incorporated Microprocessor with instructions for shifting data responsive to a signed count value
US7017032B2 (en) 2001-06-11 2006-03-21 Broadcom Corporation Setting execution conditions
US6986025B2 (en) 2001-06-11 2006-01-10 Broadcom Corporation Conditional execution per lane
US7127593B2 (en) 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
KR100419344B1 (en) 2001-09-10 2004-02-19 주식회사 오스테오시스 Apparatus for measuring density of bone

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0130381A2 (en) * 1983-06-30 1985-01-09 International Business Machines Corporation Mechanism for implementing one machine cycle executable branch-on-any-bit-in-any-register instructions in a primitive instruction set computing system
US6052776A (en) * 1996-10-18 2000-04-18 Hitachi, Ltd. Branch operation system where instructions are queued until preparations is ascertained to be completed and branch distance is considered as an execution condition
EP1089170A2 (en) * 1999-10-01 2001-04-04 Hitachi, Ltd. Processor architecture and method of processing branch control instructions

Also Published As

Publication number Publication date
EP1267255A2 (en) 2002-12-18
US20020199090A1 (en) 2002-12-26
US7861071B2 (en) 2010-12-28

Similar Documents

Publication Publication Date Title
EP1267255A3 (en) Conditional branch execution in a processor with multiple data paths
JP5512803B2 (en) Data processing apparatus and method for handling vector instructions
JP5646656B2 (en) Mapping between registers used by multiple instruction sets
US20140215189A1 (en) Data processing apparatus and method for controlling use of an issue queue
ES2389894T3 (en) CPU time extraction equipment
JP2019504403A5 (en)
WO2004114095A3 (en) Improved resource allocation technique
EP1267257A3 (en) Conditional execution per data path slice
JP2008542917A (en) Method and apparatus for predicting branch instructions
US9753730B2 (en) Decoding instructions from multiple instructions sets
EP2669807A3 (en) Processor resource and execution protection methods and apparatus
KR960001989A (en) Data processor
DE69801821D1 (en) MARKING OF SLIDING COMMERCIAL VALUES FOR THE QUICK DETECTION OF SPECIAL SLIDING COMMERCIAL NUMBERS
EP0918288A3 (en) Apparatus for spatial and temporal sampling in a computer memory system
EP1785861A3 (en) Task allocation method and task allocation apparatus
EP1004959A3 (en) Processor with pipeline protection
JP2008071130A (en) Simd type microprocessor
TW200620105A (en) Microprocessor instruction using address index values to enable access of a virtual buffer in circular fashion
GB2523823A (en) Data processing apparatus and method for processing vector operands
WO2007107707A3 (en) Computer architecture
JP2004516548A5 (en)
WO2008021607A3 (en) Selective branch target buffer (btb) allocation
DE60115609D1 (en) DATA PROCESSING ARCHITECTURE WITH FIELD TESTING FOR MATRIX
EP1736897A3 (en) Method and system for assignment of membership through script
EP0982655A3 (en) Data processing unit and method for executing instructions of variable lengths

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

RIC1 Information provided on ipc code assigned before grant

Ipc: 7G 06F 9/38 B

Ipc: 7G 06F 9/32 A

17P Request for examination filed

Effective date: 20031004

AKX Designation fees paid

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: BROADCOM CORPORATION

17Q First examination report despatched

Effective date: 20100302

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20130702