WO2000033188A3 - Efficient handling of a large register file for context switching and function calls and returns - Google Patents

Efficient handling of a large register file for context switching and function calls and returns Download PDF

Info

Publication number
WO2000033188A3
WO2000033188A3 PCT/US1999/028470 US9928470W WO0033188A3 WO 2000033188 A3 WO2000033188 A3 WO 2000033188A3 US 9928470 W US9928470 W US 9928470W WO 0033188 A3 WO0033188 A3 WO 0033188A3
Authority
WO
WIPO (PCT)
Prior art keywords
register
dirty bit
registers
group
written
Prior art date
Application number
PCT/US1999/028470
Other languages
French (fr)
Other versions
WO2000033188A2 (en
WO2000033188A9 (en
Inventor
Marc Tremblay
William N Joy
Original Assignee
Sun Microsystems 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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of WO2000033188A2 publication Critical patent/WO2000033188A2/en
Publication of WO2000033188A3 publication Critical patent/WO2000033188A3/en
Publication of WO2000033188A9 publication Critical patent/WO2000033188A9/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/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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/3012Organisation of register space, e.g. banked or distributed register file
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Abstract

A processor including a large register file utilizes a dirty bit storage coupled to the register file and a dirty bit logic that controls resetting of the dirty bit storage. The dirty bit logic determines whether a register or group of registers in the register file has been written since the process was loaded or the context was last restored and, if written generates a value in the dirty bit storage that designates the written condition of the register or group of registers. When the context is next saved, the dirty bit logic saves a particular register or group of registers when the dirty bit storage indicates that a register or group of registers was written. If the register or group of registers was not written, the context is switched without saving the register or group of registers. The dirty bit storage is initialized when a process is loaded or the context changes.
PCT/US1999/028470 1998-12-03 1999-12-02 Efficient handling of a large register file for context switching and function calls and returns WO2000033188A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/204,586 US6205543B1 (en) 1998-12-03 1998-12-03 Efficient handling of a large register file for context switching
US09/204,586 1998-12-03

Publications (3)

Publication Number Publication Date
WO2000033188A2 WO2000033188A2 (en) 2000-06-08
WO2000033188A3 true WO2000033188A3 (en) 2000-10-19
WO2000033188A9 WO2000033188A9 (en) 2001-04-12

Family

ID=22758544

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/028470 WO2000033188A2 (en) 1998-12-03 1999-12-02 Efficient handling of a large register file for context switching and function calls and returns

Country Status (2)

Country Link
US (3) US6205543B1 (en)
WO (1) WO2000033188A2 (en)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100020B1 (en) * 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
US6718457B2 (en) * 1998-12-03 2004-04-06 Sun Microsystems, Inc. Multiple-thread processor for threaded software applications
GB2348717B (en) * 1999-01-11 2003-08-06 Sgs Thomson Microelectronics Data flow control circuitry
US6314510B1 (en) 1999-04-14 2001-11-06 Sun Microsystems, Inc. Microprocessor with reduced context switching overhead and corresponding method
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
US6629075B1 (en) * 2000-06-09 2003-09-30 Speechworks International, Inc. Load-adjusted speech recogintion
GB2363869B (en) * 2000-06-20 2004-06-23 Element 14 Inc Register addressing
US7191319B1 (en) * 2000-08-02 2007-03-13 Hewlett-Packard Development Company, L.P. System and method for preloading cache memory in response to an occurrence of a context switch
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
CN1214321C (en) * 2000-12-11 2005-08-10 皇家菲利浦电子有限公司 Signal processing device and method for supplying a signal processing results to a plurality of registers
US7327759B2 (en) * 2001-07-25 2008-02-05 International Business Machines Corporation Sequence-preserving deep-packet processing in a multiprocessor system
US6976038B2 (en) 2002-10-17 2005-12-13 International Business Machines Corporation Method and apparatus for real time creation and modification of a change log for multi-server synchronization
US7203823B2 (en) * 2003-01-09 2007-04-10 Sony Corporation Partial and start-over threads in embedded real-time kernel
FR2851349A1 (en) * 2003-02-17 2004-08-20 St Microelectronics Sa METHOD FOR MANAGING A MICROPROCESSOR STACK FOR BACKING UP CONTEXTUAL DATA
US7418585B2 (en) * 2003-08-28 2008-08-26 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7870553B2 (en) * 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7711931B2 (en) * 2003-08-28 2010-05-04 Mips Technologies, Inc. Synchronized storage providing multiple synchronization semantics
US20050050305A1 (en) * 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7610473B2 (en) 2003-08-28 2009-10-27 Mips Technologies, Inc. Apparatus, method, and instruction for initiation of concurrent instruction streams in a multithreading microprocessor
US7836450B2 (en) * 2003-08-28 2010-11-16 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
US7849297B2 (en) * 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US9032404B2 (en) * 2003-08-28 2015-05-12 Mips Technologies, Inc. Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor
US7594089B2 (en) * 2003-08-28 2009-09-22 Mips Technologies, Inc. Smart memory based synchronization controller for a multi-threaded multiprocessor SoC
US8694976B2 (en) * 2003-12-19 2014-04-08 Intel Corporation Sleep state mechanism for virtual multithreading
US20050138340A1 (en) * 2003-12-22 2005-06-23 Intel Corporation Method and apparatus to reduce spill and fill overhead in a processor with a register backing store
US20050138233A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Direct memory access control
US8643659B1 (en) 2003-12-31 2014-02-04 3Dlabs Inc., Ltd. Shader with global and instruction caches
US7602905B2 (en) * 2004-09-01 2009-10-13 Texas Instruments Incorporated Processes, circuits, devices, and systems for encryption and decryption and other purposes, and processes of making
KR100636596B1 (en) * 2004-11-25 2006-10-23 한국전자통신연구원 Parallel Data Path Architecture for High Energy Efficient
US20060149940A1 (en) * 2004-12-27 2006-07-06 Intel Corporation Implementation to save and restore processor registers on a context switch
US8171268B2 (en) * 2005-09-19 2012-05-01 Intel Corporation Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors
US7865873B1 (en) 2005-09-21 2011-01-04 Stored IQ Browser-based system and method for defining and manipulating expressions
US7610285B1 (en) * 2005-09-21 2009-10-27 Stored IQ System and method for classifying objects
JP2007304926A (en) * 2006-05-12 2007-11-22 Matsushita Electric Ind Co Ltd Information processing method and instruction generation method
US8407715B2 (en) * 2007-04-30 2013-03-26 National Tsing Hua University Live range sensitive context switch procedure comprising a plurality of register sets associated with usage frequencies and live set information of tasks
GB2451845B (en) * 2007-08-14 2010-03-17 Imagination Tech Ltd Compound instructions in a multi-threaded processor
US8762692B2 (en) * 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US8631261B2 (en) 2007-12-31 2014-01-14 Intel Corporation Context state management for processor feature sets
CN101819518B (en) * 2009-02-26 2013-09-11 国际商业机器公司 Method and device for quickly saving context in transactional memory
US8769498B2 (en) 2011-12-07 2014-07-01 International Business Machines Corporation Warning of register and storage area assignment errors
CN102707990B (en) * 2012-05-14 2015-04-08 华为技术有限公司 Container based processing method and device
US9898330B2 (en) * 2013-11-11 2018-02-20 Intel Corporation Compacted context state management
US10019283B2 (en) * 2015-06-22 2018-07-10 Advanced Micro Devices, Inc. Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread
KR20170065845A (en) * 2015-12-04 2017-06-14 삼성전자주식회사 Processor and controlling method thereof
US10628320B2 (en) 2016-06-03 2020-04-21 Synopsys, Inc. Modulization of cache structure utilizing independent tag array and data array in microprocessor
US10558463B2 (en) 2016-06-03 2020-02-11 Synopsys, Inc. Communication between threads of multi-thread processor
US10318302B2 (en) * 2016-06-03 2019-06-11 Synopsys, Inc. Thread switching in microprocessor without full save and restore of register file
US10613859B2 (en) 2016-08-18 2020-04-07 Synopsys, Inc. Triple-pass execution using a retire queue having a functional unit to independently execute long latency instructions and dependent instructions
US10552158B2 (en) 2016-08-18 2020-02-04 Synopsys, Inc. Reorder buffer scoreboard having multiple valid bits to indicate a location of data
US10403351B1 (en) * 2018-02-22 2019-09-03 Advanced Micro Devices, Inc. Save and restore scoreboard
US10423218B1 (en) 2018-03-12 2019-09-24 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability
US10802754B2 (en) * 2018-03-12 2020-10-13 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection
US10664287B2 (en) 2018-03-30 2020-05-26 Intel Corporation Systems and methods for implementing chained tile operations
US11163568B2 (en) * 2018-09-06 2021-11-02 International Business Machines Corporation Implementing write ports in register-file array cell
KR20210108788A (en) 2020-02-26 2021-09-03 삼성전자주식회사 Apparatus and method for controlling power consumption in wireless communicaiton

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0213843A2 (en) * 1985-08-30 1987-03-11 Advanced Micro Devices, Inc. Digital processor control
EP0272150A2 (en) * 1986-12-19 1988-06-22 Kabushiki Kaisha Toshiba Register device
US5530817A (en) * 1992-02-21 1996-06-25 Kabushiki Kaisha Toshiba Very large instruction word type computer for performing a data transfer between register files through a signal line path

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4608631A (en) * 1982-09-03 1986-08-26 Sequoia Systems, Inc. Modular computer system
US5127098A (en) * 1989-04-12 1992-06-30 Sun Microsystems, Inc. Method and apparatus for the context switching of devices
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
JP3676411B2 (en) 1994-01-21 2005-07-27 サン・マイクロシステムズ・インコーポレイテッド Register file device and register file access method
US5761475A (en) 1994-12-15 1998-06-02 Sun Microsystems, Inc. Computer processor having a register file with reduced read and/or write port bandwidth
US5664154A (en) * 1995-10-02 1997-09-02 Chromatic Research, Inc. M/A for optimizing retry time upon cache-miss by selecting a delay time according to whether the addressed location's dirty bit indicates a write-back
US5764943A (en) 1995-12-28 1998-06-09 Intel Corporation Data path circuitry for processor having multiple instruction pipelines
US5657291A (en) 1996-04-30 1997-08-12 Sun Microsystems, Inc. Multiport register file memory cell configuration for read operation
US5860113A (en) * 1996-06-03 1999-01-12 Opti Inc. System for using a dirty bit with a cache memory
US5778248A (en) 1996-06-17 1998-07-07 Sun Microsystems, Inc. Fast microprocessor stage bypass logic enable
US6073159A (en) * 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
US5987258A (en) * 1997-06-27 1999-11-16 Lsi Logic Corporation Register reservation method for fast context switching in microprocessors
US6055606A (en) * 1997-09-05 2000-04-25 Sandcraft, Inc. Writeback cache cell with a dual ported dirty bit cell and method for operating such a cache cell
US6145049A (en) * 1997-12-29 2000-11-07 Stmicroelectronics, Inc. Method and apparatus for providing fast switching between floating point and multimedia instructions using any combination of a first register file set and a second register file set
US6671762B1 (en) * 1997-12-29 2003-12-30 Stmicroelectronics, Inc. System and method of saving and restoring registers in a data processing system
US6237083B1 (en) * 1998-02-13 2001-05-22 Advanced Micro Devices, Inc. Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence
US6408325B1 (en) * 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6470433B1 (en) * 2000-04-29 2002-10-22 Hewlett-Packard Company Modified aggressive precharge DRAM controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0213843A2 (en) * 1985-08-30 1987-03-11 Advanced Micro Devices, Inc. Digital processor control
EP0272150A2 (en) * 1986-12-19 1988-06-22 Kabushiki Kaisha Toshiba Register device
US5530817A (en) * 1992-02-21 1996-06-25 Kabushiki Kaisha Toshiba Very large instruction word type computer for performing a data transfer between register files through a signal line path

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"ALLOCATED BITS FOR MACHINES WITH VECTOR REGISTERS", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 33, no. 3A, August 1990 (1990-08-01), US,IBM CORP. NEW YORK, pages 310 - 314, XP000123953, ISSN: 0018-8689 *
"TECHNIQUE FOR REDUCING THE NUMBER OF REGISTERS SAVED AT A CONTEXT SWAP", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 33, no. 3A, August 1990 (1990-08-01), US,IBM CORP. NEW YORK, pages 234 - 235, XP000123918, ISSN: 0018-8689 *
"TECHNIQUE TO IMPROVE CONTEXT SWITCHING PERFORMANCE IN A CPU", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 33, no. 3B, August 1990 (1990-08-01), US,IBM CORP. NEW YORK, pages 472 - 473, XP000124425, ISSN: 0018-8689 *

Also Published As

Publication number Publication date
WO2000033188A2 (en) 2000-06-08
US6205543B1 (en) 2001-03-20
US7010674B2 (en) 2006-03-07
WO2000033188A9 (en) 2001-04-12
US20060242388A1 (en) 2006-10-26
US7490228B2 (en) 2009-02-10
US20010010075A1 (en) 2001-07-26

Similar Documents

Publication Publication Date Title
WO2000033188A3 (en) Efficient handling of a large register file for context switching and function calls and returns
CA2388496A1 (en) Method and system for controlling data in a computer system
MY121300A (en) Forwarding of results of store instructions
WO1999014663A3 (en) Data processing unit with digital signal processing capabilities
EP1612271A3 (en) Multiply-substituted protease variants with altered net charge for use in detergents
CA2383528A1 (en) Branch instruction for processor
AU4609401A (en) Sleep state transitioning
JPS56149646A (en) Operation controller
WO1999060460A3 (en) Storing instructions in low power shift register buffer for fetching loop instructions
WO2005026928A3 (en) Power saving operation of an apparatus with a cache memory
WO2000062165A3 (en) Microprocessor with reduced context switching overhead and corresponding method
EP1157370A1 (en) Data processing unit with access to the memory of another data processing unit during standby
WO2002003598A3 (en) Block interleaver and de-interleaver with buffer to reduce power consumption
WO2002093404A3 (en) Computing system
TW334546B (en) Data processor
WO2002046885A3 (en) Handling conditional processing in a single instruction multiple datapath processor architecture
CN107844329A (en) A kind of method of system power modes switching
EP0677974A3 (en) Data buffering device between communicating processors in a cellular mobile telephone terminal
WO1999009467A3 (en) A transient datastream-processing buffer memory organization with software management adapted for multilevel housekeeping
CA2116284A1 (en) Parallel Data Transfer Circuit
EP0793235A3 (en) Single-chip memory system having a decoder for pulse word line method
KR980006742A (en) How to prevent power on / off conversion
JPS61182123A (en) Semiconductor logical circuit containing stand-by function
JPH086616A (en) Programmable controller
JPS6441028A (en) Interruption processing system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: A3

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

AK Designated states

Kind code of ref document: C2

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: C2

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

COP Corrected version of pamphlet

Free format text: PAGES 1/17-17/17, DRAWINGS, REPLACED BY NEW PAGES 1/13-13/13; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

122 Ep: pct application non-entry in european phase