CA2508041A1 - Processor virtualization mechanism via an enhanced restoration of hard architected states - Google Patents

Processor virtualization mechanism via an enhanced restoration of hard architected states Download PDF

Info

Publication number
CA2508041A1
CA2508041A1 CA002508041A CA2508041A CA2508041A1 CA 2508041 A1 CA2508041 A1 CA 2508041A1 CA 002508041 A CA002508041 A CA 002508041A CA 2508041 A CA2508041 A CA 2508041A CA 2508041 A1 CA2508041 A1 CA 2508041A1
Authority
CA
Canada
Prior art keywords
processor
architected state
hard architected
storing
hard
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
CA002508041A
Other languages
French (fr)
Other versions
CA2508041C (en
Inventor
Ravi Kumar Arimilli
Robert Alan Cargnoni
Guy Lynn Guthrie
William John Starke
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.)
International Business Machines Corp
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 CA2508041A1 publication Critical patent/CA2508041A1/en
Application granted granted Critical
Publication of CA2508041C publication Critical patent/CA2508041C/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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/22Microcontrol or microprogram arrangements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Electrotherapy Devices (AREA)
  • Multi Processors (AREA)
  • Control Of Multiple Motors (AREA)
  • Hardware Redundancy (AREA)

Abstract

A method and system are disclosed for pre-loading a hard architected state o f a next process from a pool of idle processes awaiting execution. When an executing process is interrupted on the processor, a hard architected state, which has been pre-stored in the processor, of a next process is loaded into architected storage locations in the processor. The next process to be executed, and thus its corresponding hard architected state that is pre-stor ed in the processor, are determined based on priorities assigned to the waiting processes.

Claims (15)

1. A method of operating a processor, said method comprising:
storing in a first set of storage locations in the processor a first hard architected state of a first process currently undergoing execution by the processor;
storing in a second set of storage locations in the processor a second hard architected state of a second process that is idle;
in response to receiving a process interrupt at the processor, loading the second hard architected state from the second set of storage locations into the first set of storage locations; and executing the second process.
2. The method of claim 1, further comprising dynamically replacing the second hard architected state with a third architected state of another idle process while the first process is executing.
3. The method of claim 1, further comprising:
selecting the second process, from a pool of idle processes, for storage of the second hard architected state into the processor, based on a priority of said second process.
4. The method of claim 1, further comprising:
saving the first hard architected state in response to receiving the process interrupt.
5. The method of claim 1, further comprising:
storing a shadow copy of the first hard architected state within the processor; and in response to receiving the process interrupt in the processor, storing the shadow copy of the first hard architected state in a memory.
6. A processor comprising:
at least one execution unit;
an instruction sequencing unit coupled to the at least one execution unit;
a first set of storage locations for storing a first hard architected state of a first process currently undergoing execution by the processor; and a second set of storage locations for storing a second hard architected state of a second process that is idle, wherein the second process is from a pool of idle processes, and wherein the second hard architected state that is stored in the second set of storage locations is selected based on a priority assignment of the processing in the pool of idle processes.
7. The processor of claim 6, further comprising means for updating the second hard architected state in response to a process interrupt.
8. The processor of claim 6, further comprising:
execution circuitry for executing memory access instructions, whereby the processor is capable of storing the second architected state independently of execution of memory access instructions by the execution circuitry.
9. The processor of claim 6, further comprising:
a corresponding shadow register coupled to the first set of storage locations, the shadow register containing a shadow copy of at least a portion of the first hard architected state; and a memory coupled to the shadow register, wherein the processor, in receipt of a process interrupt, stores the shadow copy of the first hard architected state to the memory.
10. A data processing system comprising:
a plurality of processors including a processor in accordance with claim 6;
a volatile memory hierarchy coupled to the plurality of processors; and an interconnect coupling the plurality of processors.
11. A processor comprising:
means for storing in a first set of storage location in the processor a first hard architected state of a first process currently undergoing execution by the processor;
means for storing in a second set of storage locations in the processor a second hard architected state of a second process that is idle;
means, responsive to receiving a process interrupt at the processor, for loading the second hard architected state from the second set of storage locations into the first set of storage locations; and means for executing the second process.
12. The processor of claim 11, further comprising means for dynamically replacing the second hard architected state with a third architected state of another idle process while the first process is executing.
13. The processor of claim 11, further comprising:
means for selecting the second process, from a pool of idle processes, for storage in the processor, based on a priority of said second process.
14. The processor of claim 11, further comprising:
means for saving the first hard architected state in response to receiving the process interrupt.
15. The processor of claim 11, further comprising:
means for storing a shadow copy of the first hard architected state within the processor; and means, responsive to receiving the process interrupt in the processor, for storing the shadow copy of the first hard architected state in a memory.
CA2508041A 2002-12-05 2003-11-14 Processor virtualization mechanism via an enhanced restoration of hard architected states Expired - Fee Related CA2508041C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/313,320 US6981083B2 (en) 2002-12-05 2002-12-05 Processor virtualization mechanism via an enhanced restoration of hard architected states
US10/313,320 2002-12-05
PCT/EP2003/014863 WO2004051463A2 (en) 2002-12-05 2003-11-14 Method and apparatus for switching between processes

Publications (2)

Publication Number Publication Date
CA2508041A1 true CA2508041A1 (en) 2004-06-17
CA2508041C CA2508041C (en) 2011-06-07

Family

ID=32468218

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2508041A Expired - Fee Related CA2508041C (en) 2002-12-05 2003-11-14 Processor virtualization mechanism via an enhanced restoration of hard architected states

Country Status (10)

Country Link
US (1) US6981083B2 (en)
EP (1) EP1570352B1 (en)
KR (1) KR100615775B1 (en)
CN (1) CN1726469A (en)
AT (1) ATE487180T1 (en)
AU (1) AU2003298240A1 (en)
CA (1) CA2508041C (en)
DE (1) DE60334835D1 (en)
TW (1) TWI263938B (en)
WO (1) WO2004051463A2 (en)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493478B2 (en) * 2002-12-05 2009-02-17 International Business Machines Corporation Enhanced processor virtualization mechanism via saving and restoring soft processor/system states
US7117319B2 (en) * 2002-12-05 2006-10-03 International Business Machines Corporation Managing processor architected state upon an interrupt
US7272664B2 (en) * 2002-12-05 2007-09-18 International Business Machines Corporation Cross partition sharing of state information
US20070074013A1 (en) * 2003-08-25 2007-03-29 Lonnie Goff Dynamic retention of hardware register content in a computer system
US7657807B1 (en) 2005-06-27 2010-02-02 Sun Microsystems, Inc. Integrated circuit with embedded test functionality
JP4388005B2 (en) * 2005-10-06 2009-12-24 パナソニック株式会社 Context switching device
US7424563B2 (en) * 2006-02-24 2008-09-09 Qualcomm Incorporated Two-level interrupt service routine
CN103646009B (en) 2006-04-12 2016-08-17 索夫特机械公司 The apparatus and method that the instruction matrix of specifying parallel and dependent operations is processed
CN101627365B (en) 2006-11-14 2017-03-29 索夫特机械公司 Multi-threaded architecture
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
WO2009145764A1 (en) * 2008-05-28 2009-12-03 Hewlett-Packard Development Company, L.P. Providing object-level input/output requests between virtual machines to access a storage subsystem
US7831816B2 (en) * 2008-05-30 2010-11-09 Globalfoundries Inc. Non-destructive sideband reading of processor state information
US8135894B1 (en) * 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
EP3156896B1 (en) 2010-09-17 2020-04-08 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
CN103635875B (en) 2011-03-25 2018-02-16 英特尔公司 For by using by can subregion engine instance the memory segment that is performed come support code block of virtual core
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
TWI603198B (en) 2011-05-20 2017-10-21 英特爾股份有限公司 Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
KR101639854B1 (en) 2011-05-20 2016-07-14 소프트 머신즈, 인크. An interconnect structure to support the execution of instruction sequences by a plurality of engines
KR101703401B1 (en) 2011-11-22 2017-02-06 소프트 머신즈, 인크. An accelerated code optimizer for a multiengine microprocessor
US20150039859A1 (en) 2011-11-22 2015-02-05 Soft Machines, Inc. Microprocessor accelerated code optimizer
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9569279B2 (en) * 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
DE102013108041B4 (en) 2012-07-31 2024-01-04 Nvidia Corporation Heterogeneous multiprocessor arrangement for power-efficient and area-efficient computing
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
US9632976B2 (en) 2012-12-07 2017-04-25 Nvidia Corporation Lazy runahead operation for a microprocessor
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9823931B2 (en) 2012-12-28 2017-11-21 Nvidia Corporation Queued instruction re-dispatch after runahead
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
KR101708591B1 (en) 2013-03-15 2017-02-20 소프트 머신즈, 인크. A method for executing multithreaded instructions grouped onto blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
KR102083390B1 (en) 2013-03-15 2020-03-02 인텔 코포레이션 A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9507597B2 (en) 2013-06-10 2016-11-29 Via Alliance Semiconductor Co., Ltd. Selective accumulation and use of predicting unit history
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination
US9891918B2 (en) 2014-01-27 2018-02-13 Via Alliance Semiconductor Co., Ltd. Fractional use of prediction history storage for operating system routines
EP2940575B1 (en) * 2014-05-02 2018-05-09 Nxp B.V. Controller circuits, data interface blocks, and methods for transferring data
US10346170B2 (en) * 2015-05-05 2019-07-09 Intel Corporation Performing partial register write operations in a processor
US10552212B2 (en) * 2016-11-28 2020-02-04 Arm Limited Data processing
US10671426B2 (en) 2016-11-28 2020-06-02 Arm Limited Data processing
US10423446B2 (en) 2016-11-28 2019-09-24 Arm Limited Data processing
CN108804139B (en) * 2017-06-16 2020-10-20 上海兆芯集成电路有限公司 Programmable device, method of operation thereof, and computer usable medium
US10996990B2 (en) 2018-11-15 2021-05-04 International Business Machines Corporation Interrupt context switching using dedicated processors
KR20200100958A (en) * 2019-02-19 2020-08-27 삼성전자주식회사 Electronic device and method for prefetching application

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US30007A (en) * 1860-09-11 Improvement in horse-rakes
US2878715A (en) * 1956-02-06 1959-03-24 Mark C Rhees Method of blood plasma prothrombin time determinations
US3296922A (en) * 1963-04-22 1967-01-10 American Optical Corp Apparatus for determining oxygen saturation of blood
US3516746A (en) * 1965-01-28 1970-06-23 Shimadzu Corp Cross slide spectrophotometer with a diffusing element between sample cell and photoelectric tube
US3527542A (en) * 1966-06-15 1970-09-08 Beckman Instruments Inc Cardiac output apparatus
US3638640A (en) * 1967-11-01 1972-02-01 Robert F Shaw Oximeter and method for in vivo determination of oxygen saturation in blood using three or more different wavelengths
US3649204A (en) * 1968-09-18 1972-03-14 Farr Devices Inc Metering pump for analytical samples
HU164637B (en) * 1970-02-02 1974-03-28
US3781810A (en) 1972-04-26 1973-12-25 Bell Telephone Labor Inc Scheme for saving and restoring register contents in a data processor
US3799672A (en) * 1972-09-15 1974-03-26 Us Health Education & Welfare Oximeter for monitoring oxygen saturation in blood
US4025904A (en) * 1973-10-19 1977-05-24 Texas Instruments Incorporated Programmed allocation of computer memory workspace
GB1486505A (en) * 1974-06-04 1977-09-21 Compur Werk Gmbh & Co Handheld photoelectric appliance for testing liquids
US3972614A (en) * 1974-07-10 1976-08-03 Radiometer A/S Method and apparatus for measuring one or more constituents of a blood sample
IT1019866B (en) * 1974-08-09 1977-11-30 Biomedix Ag EQUIPMENT FOR THE DETERMINATION OF THE CONCENTRATION OF HEMOGLOBES NA TOTAL OXYGEN AND RISOTTA CAR BOSSIHEMOGLOBIN OF THE CAPACITY OF THE HEMOGLOBIN FOR THE OXYGEN OF THE SATURATION PER CENTUAL IN OXYGEN AND IN OXIDE OF CARBON IN SOLOIL OR BLOOD
CH581836A5 (en) * 1974-08-20 1976-11-15 Contraves Ag
US4057394A (en) * 1976-05-24 1977-11-08 Miles Laboratories, Inc. Test device and method for determining blood hemoglobin
DK146287C (en) * 1976-10-18 1984-01-30 Radiometer As PROCEDURE FOR DEOXYGENATION OF A BLOOD SAMPLING MATERIAL AND CAPILLAR BEARS USED BY THE PROCEDURE
US4134678A (en) * 1977-03-16 1979-01-16 Instrumentation Laboratory Inc. Automatic blood analysis apparatus and method
AT374008B (en) * 1977-10-25 1984-03-12 Compur Electronic Gmbh CUEVETTE
US4243883A (en) * 1979-01-19 1981-01-06 Midwest Cardiovascular Institute Foundation Blood hematocrit monitoring system
US4303887A (en) * 1979-10-29 1981-12-01 United States Surgical Corporation Electrical liquid conductivity measuring system
US4301412A (en) * 1979-10-29 1981-11-17 United States Surgical Corporation Liquid conductivity measuring system and sample cards therefor
US4502786A (en) * 1979-12-26 1985-03-05 Helena Laboratories Corporation Method and apparatus for automated determination of hemoglobin species
US4324556A (en) * 1980-03-25 1982-04-13 The United States Of America As Represented By The Secretary Of The Navy Portable COHB analyzer
US4453266A (en) * 1980-04-21 1984-06-05 Rush-Presbyterian-St. Luke's Medical Center Method and apparatus for measuring mean cell volume of red blood cells
US4357105A (en) * 1980-08-06 1982-11-02 Buffalo Medical Specialties Mfg., Inc. Blood diagnostic spectrophotometer
US4444498A (en) * 1981-02-27 1984-04-24 Bentley Laboratories Apparatus and method for measuring blood oxygen saturation
FR2530029A1 (en) * 1982-07-06 1984-01-13 Centre Nat Rech Scient IMPROVED LASER NEPHELOMETER FOR DETECTION OF ANTIGENS AND ANTIBODIES
US4700708A (en) * 1982-09-02 1987-10-20 Nellcor Incorporated Calibrated optical oximeter probe
US4484274A (en) * 1982-09-07 1984-11-20 At&T Bell Laboratories Computer system with improved process switch routine
US4565448A (en) * 1983-03-11 1986-01-21 E. I. Du Pont De Nemours And Company Particle counting apparatus
US4651741A (en) * 1985-05-30 1987-03-24 Baxter Travenol Laboratories, Inc. Method and apparatus for determining oxygen saturation in vivo
DK282085D0 (en) * 1985-06-21 1985-06-21 Radiometer As METHOD AND APPARATUS FOR DETERMINING BLOOD COMPONENTS
US5142677A (en) 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US5057997A (en) * 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
US5280616A (en) * 1989-02-27 1994-01-18 International Business Machines Corporation Logic circuit for task processing
JPH0353328A (en) * 1989-07-20 1991-03-07 Hitachi Ltd Register saving recoverying method and processor
US5064282A (en) * 1989-09-26 1991-11-12 Artel, Inc. Photometric apparatus and method for measuring hemoglobin
US5345567A (en) * 1991-06-10 1994-09-06 International Business Machines Corporation System and method for modifying program status word system mask, system access key, and address space code with overlap enabled
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5428779A (en) * 1992-11-09 1995-06-27 Seiko Epson Corporation System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions
US5802359A (en) * 1995-03-31 1998-09-01 International Business Machines Corporation Mapping processor state into a millicode addressable processor state register array
US5943494A (en) * 1995-06-07 1999-08-24 International Business Machines Corporation Method and system for processing multiple branch instructions that write to count and link registers
US6070235A (en) * 1997-07-14 2000-05-30 International Business Machines Corporation Data processing system and method for capturing history buffer data
US6405234B2 (en) 1997-09-11 2002-06-11 International Business Machines Corporation Full time operating system
US6128641A (en) * 1997-09-12 2000-10-03 Siemens Aktiengesellschaft Data processing unit with hardware assisted context switching capability
US5987495A (en) * 1997-11-07 1999-11-16 International Business Machines Corporation Method and apparatus for fully restoring a program context following an interrupt
US6006293A (en) * 1998-04-21 1999-12-21 Comsat Corporation Method and apparatus for zero overhead sharing for registered digital hardware
US6189112B1 (en) 1998-04-30 2001-02-13 International Business Machines Corporation Transparent processor sparing
US6247109B1 (en) 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US7318090B1 (en) * 1999-10-20 2008-01-08 Sony Corporation Method for utilizing concurrent context switching to support isochronous processes
US6629236B1 (en) * 1999-11-12 2003-09-30 International Business Machines Corporation Master-slave latch circuit for multithreaded processing
US6496925B1 (en) * 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US7120783B2 (en) * 1999-12-22 2006-10-10 Ubicom, Inc. System and method for reading and writing a thread state in a multithreaded central processing unit
US6553487B1 (en) 2000-01-07 2003-04-22 Motorola, Inc. Device and method for performing high-speed low overhead context switch
US6845501B2 (en) * 2001-07-27 2005-01-18 Hewlett-Packard Development Company, L.P. Method and apparatus for enabling a compiler to reduce cache misses by performing pre-fetches in the event of context switch
JP2003099272A (en) * 2001-09-20 2003-04-04 Ricoh Co Ltd Task switching system and method, dsp, and modem
US7313797B2 (en) * 2002-09-18 2007-12-25 Wind River Systems, Inc. Uniprocessor operating system design facilitating fast context switching
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US7337442B2 (en) * 2002-12-03 2008-02-26 Microsoft Corporation Methods and systems for cooperative scheduling of hardware resource elements

Also Published As

Publication number Publication date
EP1570352A2 (en) 2005-09-07
EP1570352B1 (en) 2010-11-03
TW200422949A (en) 2004-11-01
AU2003298240A1 (en) 2004-06-23
KR100615775B1 (en) 2006-08-25
WO2004051463A2 (en) 2004-06-17
WO2004051463A3 (en) 2005-06-02
US6981083B2 (en) 2005-12-27
KR20040049256A (en) 2004-06-11
ATE487180T1 (en) 2010-11-15
DE60334835D1 (en) 2010-12-16
CA2508041C (en) 2011-06-07
US20040111548A1 (en) 2004-06-10
TWI263938B (en) 2006-10-11
AU2003298240A8 (en) 2004-06-23
CN1726469A (en) 2006-01-25

Similar Documents

Publication Publication Date Title
CA2508041A1 (en) Processor virtualization mechanism via an enhanced restoration of hard architected states
EP0365188B1 (en) Central processor condition code method and apparatus
US6665699B1 (en) Method and data processing system providing processor affinity dispatching
JP3253303B2 (en) Context switching apparatus and method
US6976158B2 (en) Repeat instruction with interrupt
US20090271790A1 (en) Computer architecture
JPH07175666A (en) Data processor and interruption request processing method for the same
US20120173848A1 (en) Pipeline flush for processor that may execute instructions out of order
US20050028159A1 (en) Memory managing system and task controller in multitask system
WO2001038970A2 (en) Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks
US6199156B1 (en) System for explicitly referencing a register for its current content when performing processor context switch
US20030023836A1 (en) Shadow register array control instructions
JP4381951B2 (en) Interrupt priority control of nested interrupt system
US5943494A (en) Method and system for processing multiple branch instructions that write to count and link registers
US20030028696A1 (en) Low overhead interrupt
US20050125801A1 (en) Method and apparartus for context switching in computer operating systems
US7080236B2 (en) Updating stack pointer based on instruction bit indicator without executing an update microinstruction
JP2004348327A (en) Digital signal processor and digital signal processing method
EP1393162A2 (en) Method and system for tracking and recycling physical register assignment
US7363475B2 (en) Managing registers in a processor to emulate a portion of a stack
EP1104899A2 (en) Data processing apparatus and method of controlling the same
JP2005275703A (en) Processor, and context switching method
JPS5965306A (en) Sequence controller
JPS62125437A (en) Control method for additional processor
KR19990026795A (en) Microprocessor

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed
MKLA Lapsed

Effective date: 20121114

MKLA Lapsed

Effective date: 20121114