Context Preserving (e.g., Context Swapping, Checkpointing, Register Windowing Patents (Class 712/228)
-
Patent number: 8560816Abstract: Systems and methods described herein for performing incremental register checkpointing may employ a special register to indicate which registers have already been checkpointed. This register may include one bit per register. These systems may also include a special pointer register whose value identifies a location in user memory or in dedicated on-chip storage at which a copy of a register's value should be saved by a checkpointing operation. Only registers modified during speculative execution or execution of a transaction may be checkpointed (e.g., when register modifying instructions are encountered) and subsequently restored (e.g., due to misspeculation or transaction abort), rather than all of the registers of the processor. Each register may be checkpointed at most once for a given speculative episode or atomic transaction. Setting a bit in the special register may prevent checkpointing of the corresponding register. Setting all of the bits in the special register may disable checkpointing.Type: GrantFiled: June 30, 2010Date of Patent: October 15, 2013Assignee: Oracle International CorporationInventors: Mark S. Moir, David Dice, Daniel S. Nussbaum, James R. Goodman
-
Patent number: 8561079Abstract: The information processing device in the simultaneous multi-threading system is operated in an inter-thread performance load arbitration control method, and includes: an instruction input control unit for sharing among threads control of inputting an instruction in an arithmetic unit for acquiring the instruction from memory and performing an operation on the basis of the instruction; a commit stack entry provided for each thread for holding information obtained by decoding the instruction; an instruction completion order control unit for updating the memory and a general purpose register depending on an arithmetic result obtained by the arithmetic unit in an order of the instructions input from the instruction input control unit; and a performance load balance analysis unit for detecting the information registered in the commit stack entry and controlling the instruction input control unit.Type: GrantFiled: December 11, 2009Date of Patent: October 15, 2013Assignee: Fujitsu LimitedInventors: Takashi Suzuki, Toshio Yoshida
-
Patent number: 8560806Abstract: Embodiments of an invention for using a memory address translation structure to manage protected micro-contexts are disclosed. In one embodiment, an apparatus includes an interface and memory management logic. The interface is to perform a transaction to fetch information from a memory. The memory management logic is to translate an untranslated address to a memory address. The memory management logic includes a storage location, a series of translation stages, and determination logic. The storage location is to store an address of a data structure for the first translation stage. Each of the translation stages includes translation logic to find an entry in a data structure based on a portion of the untranslated address. Each entry is to store an address of a different data structure for the first translation stage, an address of a data structure for a successive translation stage, or the physical address.Type: GrantFiled: December 31, 2007Date of Patent: October 15, 2013Assignee: Intel CorporationInventors: David M. Durham, Uday R. Savagaonkar, Ravi Sahita
-
Patent number: 8555038Abstract: A processor including instruction support for large-operand instructions that use multiple register windows may issue, for execution, programmer-selectable instructions from a defined instruction set architecture (ISA). The processor may also include an instruction execution unit that, during operation, receives instructions for execution from the instruction fetch unit and executes a large-operand instruction defined within the ISA, where execution of the large-operand instruction is dependent upon a plurality of registers arranged within a plurality of register windows. The processor may further include control circuitry (which may be included within the fetch unit, the execution unit, or elsewhere within the processor) that determines whether one or more of the register windows depended upon by the large-operand instruction are not present. In response to determining that one or more of these register windows are not present, the control circuitry causes them to be restored.Type: GrantFiled: May 28, 2010Date of Patent: October 8, 2013Assignee: Oracle International CorporationInventors: Christopher H. Olson, Paul J. Jordan, Jama I. Barreh
-
Patent number: 8549268Abstract: A computer-implemented method for managing processing resources of a computerized system having at least a first processor and a second processor, each of the processors operatively interconnected to a memory storing a set of data to be processed by a processor, the method comprising: monitoring data accessed by the first processor while executing; and if the second processor is at a shorter distance than the first processor from the monitored data, instructing to interrupt execution at the first processor and resume the execution at the second processor.Type: GrantFiled: August 30, 2012Date of Patent: October 1, 2013Assignee: International Business Machines CorporationInventors: Hillery C Hunter, Ronald P Luijten, Phillip Stanley-Marbell
-
Patent number: 8549254Abstract: Embodiments of an invention for using a translation lookaside buffer to manage protected micro-contexts are disclosed. In one embodiment, an apparatus includes an interface and memory management logic. The interface is to perform a transaction to fetch information from a memory. The memory management logic is to translate an untranslated address to a memory address. The memory management logic includes a storage location, a series of translation stages, determination logic, and a translation lookaside buffer. The storage location is to store an address of a data structure for the first translation stage. Each of the translation stages includes translation logic to find an entry in a data structure based on a portion of the untranslated address. Each entry is to store an address of a different data structure for the first translation stage, an address of a data structure for a successive translation stage, or the physical address.Type: GrantFiled: December 31, 2007Date of Patent: October 1, 2013Assignee: Intel CorporationInventor: Uday R. Savagaonkar
-
Patent number: 8549267Abstract: Example methods and apparatus to manage partial commit-checkpoints are disclosed. A disclosed example method includes identifying a commit instruction associated with a region of instructions executed by a processor, identifying candidate instructions from the region of instructions, and generating a processor partial commit-checkpoint to save a current state of the processor, the checkpoint based on calculated register values associated with live instructions, and including instruction reference addresses to link the candidate instructions.Type: GrantFiled: December 22, 2009Date of Patent: October 1, 2013Assignee: Intel CorporationInventors: Edson Borin, Youfeng Wu
-
Patent number: 8544022Abstract: Mechanisms for executing a transaction in the data processing system are provided. A transaction checkpoint data structure is generated in internal registers of a processor. The transaction checkpoint data structure stores transaction checkpoint data representing a state of program registers at a time prior to execution of a corresponding transaction. The transaction, which comprises a first portion of code that is to be executed by the processor, is executed. An interrupt of the transaction is received while executing the transaction and, as a result, the transaction checkpoint data is stored to a data structure in a memory of the data processing system. A second portion of code is then executed. A state of the program registers is restored using the data structure in the memory of the data processing system in response to an event occurring causing a switch of execution of the processor back to execution of the transaction.Type: GrantFiled: May 7, 2012Date of Patent: September 24, 2013Assignee: International Business Machines CorporationInventors: Richard L. Arndt, Harold W. Cain, III, Bradly G. Frey, Cathy May
-
Patent number: 8539458Abstract: The present invention extends to methods, systems, and computer program products for changing addressing mode during code generation. Generally, embodiments of the invention use a compiler transformation to transform lower level code from one address alignment to another address alignment. The transformation can be based upon assumptions of a source programming language. Based on the assumptions, the transformation can eliminate arithmetic operations that compensate for different addressing alignment, resulting in more efficient code. Some particular embodiments use a compiler transformation to transform an Intermediate Representation (“IR”) from one-byte addressing alignment into multi-byte (e.g., four-byte) addressing alignment.Type: GrantFiled: June 10, 2011Date of Patent: September 17, 2013Assignee: Microsoft CorporationInventors: Weirong Zhu, Yosseff Levanoni
-
Patent number: 8539210Abstract: A microcontroller device has a central processing unit (CPU); a data memory coupled with the CPU divided into a plurality of memory banks, a plurality of special function registers and general purpose registers which may be memory-mapped, wherein at least the following special function registers are memory-mapped to all memory banks: a status register, a bank select register, a plurality of indirect memory address registers, a working register, and a program counter high latch; and wherein upon occurrence of a context switch, the CPU is operable to automatically save the content of the status register, the bank select register, the plurality of indirect memory address registers, the working register, and the program counter high latch, and upon return from the context switch restores the content of the status register, the bank select register, the plurality of indirect memory address registers, the working register, and the program counter high latch.Type: GrantFiled: June 27, 2008Date of Patent: September 17, 2013Assignee: Microchip Technology IncorporatedInventors: Joseph Julicher, Zacharias Marthinus Smit, Sean Steedman, Vivien Delport, Jerrold S. Zdenek, Ryan Scott Ellison, Eric Schroeder
-
Publication number: 20130238882Abstract: A multi-core processor system includes a given core among multiple cores, wherein the given core is configured to detect execution of a process by the cores; and generate upon detecting the execution of the process, a specific thread that saves state information indicating an executed state of the process and an executed state of each thread to be monitored of the process.Type: ApplicationFiled: April 4, 2013Publication date: September 12, 2013Applicant: FUJITSU LIMITEDInventors: Takahisa SUZUKI, Koichiro Yamashita, Hiromasa Yamauchi, Koji Kurihara
-
Patent number: 8527989Abstract: Some embodiments of the inventive subject matter are directed to receiving a request from a first instance of an operating system (e.g., a virtual operating system) to load a kernel extension that extends functionality of a kernel, where the kernel and the first instance of the operating system are managed by a second instance of the operating system (e.g., a global operating system), and where the first and second instances of the operating system share the kernel. Some embodiments are further directed to recording an indicator that indicates that the first of the plurality of the instances of the operating system requested to load the kernel extension, where the indicator is accessible only to the second instance of the operating system. In some embodiments, the method is further directed to loading the kernel extension, where loading the kernel extension extends functionality of the kernel.Type: GrantFiled: July 12, 2010Date of Patent: September 3, 2013Assignee: International Business Machines CorporationInventors: Khalid Filali-Adib, Kevin L. Fought, David W. Sheffield, Nathaniel S. Tomsic, Sungjin Yook
-
Publication number: 20130227254Abstract: A computing device initiates execution of a first co-routine on the computing device. The first co-routine utilizes an execution stack in a memory of the computing device. A differential symmetric co-routine module pauses execution of the first co-routine and, subsequently, resumes execution of the first co-routine utilizing the same execution stack.Type: ApplicationFiled: February 29, 2012Publication date: August 29, 2013Inventor: Nathaniel McCallum
-
Patent number: 8521995Abstract: A method includes receiving control in a kernel mode via a ring transition from a user thread during execution of an unbounded transactional memory (UTM) transaction, updating a state of a transaction status register (TSR) associated with the user thread and storing the TSR with a context of the user thread, and later restoring the context during a transition from the kernel mode to the user thread. In this way, the UTM transaction may continue on resumption of the user thread.Type: GrantFiled: December 15, 2009Date of Patent: August 27, 2013Assignee: Intel CorporationInventors: Koichi Yamada, Gad Sheaffer, Jan Gray, Landy Wang, Martin Taillefer, Arun Kishan, Ali-Reza Adl-Tabatabai, David Callahan
-
Publication number: 20130219154Abstract: Embodiments of an invention related to context state management based on processor features are disclosed. In one embodiment, a processor includes instruction logic and state management logic. The instruction logic is to receive a state management instruction having a parameter to identify a subset of the features supported by the processor. The state management logic is to perform a state management operation specified by the state management instruction.Type: ApplicationFiled: March 15, 2013Publication date: August 22, 2013Inventors: Don A. Van Dyke, Michael Mishaeli, Ittai Anati, Baiju V. Patel, Will Deutsch, Rajesh Shah, Gilbert Neiger, James B. Crossland, Chris J. Newburn, Bryant E. Bigbee, Muhammad Faisal Azeem, John L. Reid, Dion Rodgers
-
Patent number: 8516024Abstract: In a multi-threaded processor, one or more variables are set up in memory (e.g., a register) to indicate which of a plurality of executable threads has a higher priority. Once the variable is set, several embodiments are presented for granting higher priority processing to the designated thread. For example, more instructions from the higher priority thread may be executed as compared to the lower priority thread. Also, a higher priority thread may be given comparatively more access to a given resource, such as memory or a bus.Type: GrantFiled: September 30, 2011Date of Patent: August 20, 2013Assignee: Intel CorporationInventor: Deborah T. Marr
-
Patent number: 8510539Abstract: A spilling method in register files for a processor is proposed. The processor with Parallel Architecture Core structure includes multiple clusters and a memory. Each cluster includes multiple function units (M-Unit and I-Unit), multiple local register files and a global register file. The local register files are used by the multiple function units, respectively. For a specified live range, the method includes calculating communication costs of the local register files and the global register file in each cluster, and communication cost of the memory for spilling the live range when spilling occurs; calculating use ratios of the local register files and the global register file in each cluster, and use ratio of the memory for the live range; and selecting one of the local register files and the global register file in each cluster and the memory for spilling the live range based on the communication costs and use ratios.Type: GrantFiled: July 2, 2010Date of Patent: August 13, 2013Assignee: National Tsing Hua UniversityInventors: Chia Han Lu, Chung Ju Wu, Jenq Kuen Lee
-
Publication number: 20130198492Abstract: Major branch instructions are provided that enable execution of a computer program to branch from one segment of code to another segment of code. These instructions also create a new stream of processing at the other segment of code enabling execution of the other segment of code to be performed in parallel with the segment of code from which the branch was taken. In one example, the other stream of processing starts a transaction for processing instructions of the other stream of processing.Type: ApplicationFiled: January 31, 2012Publication date: August 1, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Fadi Y. Busaba, Steven R. Carlough, Christopher A. Krygowski, Brian R. Prasky, Chung-Lung K. Shum
-
Patent number: 8499306Abstract: A microprocessor executes programs in a pipeline architecture that includes a task register management unit that switches a value of a task register to second register information that is used when a second task is executed after the execution of a first task is completed, if a switch instruction to the second task is issued when a plurality of units executes the first task, and a task manager that switches a value of a task identification information register to a second task identifier after the value is switched to the second register information, and grants each of the plurality of units permission to execute the second task.Type: GrantFiled: November 4, 2010Date of Patent: July 30, 2013Assignee: Kabushiki Kaisha ToshibaInventors: Hiroyoshi Haruki, Mikio Hashimoto, Takeshi Kawabata
-
Patent number: 8489864Abstract: Performing non-transactional escape actions within a hardware based transactional memory system. A method includes at a hardware thread on a processor beginning a hardware based transaction for the thread. Without committing or aborting the transaction, the method further includes suspending the hardware based transaction and performing one or more operations for the thread, non-transactionally and not affected by: transaction monitoring and buffering for the transaction, an abort for the transaction, or a commit for the transaction. After performing one or more operations for the thread, non-transactionally, the method further includes resuming the transaction and performing additional operations transactionally. After performing the additional operations, the method further includes either committing or aborting the transaction.Type: GrantFiled: June 26, 2009Date of Patent: July 16, 2013Assignee: Microsoft CorporationInventors: Gad Sheaffer, Jan Gray, Martin Taillefer, Ali-Reza Adl-Tabatabai, Bratin Saha, Vadim Bassin, Robert Y. Geva, David Callahan
-
Publication number: 20130179665Abstract: A technique for restoring a register renaming map is described. In one example, a restore table having a number of storage locations saves a copy of the register renaming map whenever a flow-risk instruction is passed to a re-order buffer. When all storage locations are full, further instructions still pass to the re-order buffer, but a copy of the map is not saved. A storage location subsequently becomes available when its associated flow-risk instruction is executed. A register renaming map state for an unrecorded flow-risk instruction passed to the re-order buffer whilst the storage locations were full is generated and stored in the available location. This is generated using the restore table entry for a previous flow-risk instruction and re-order buffer values for intervening instructions between the previous and unrecorded flow-risk instructions. The restore table can be used to restore the map if an unexpected change in instruction flow occurs.Type: ApplicationFiled: July 31, 2012Publication date: July 11, 2013Applicant: Imagination Technologies, Ltd.Inventor: Hugh Jackson
-
Publication number: 20130179667Abstract: Disclosed are methods and systems for state switching. The method is applied to a first hardware system. The first hardware system is connected with a second hardware system. The first hardware system has a first operation state and a second operation state. The second hardware system includes a memory unit. The memory unit has a first access state and a second access state. The memory unit is in the first access state currently. The method includes: the first hardware system sends an access state switching instruction to the second hardware system when the first hardware system enters the second operation state from the first operation state, wherein, the access state switching instruction is adapted to switch the memory unit of the second hardware system from the first access state to the second access state. The application of the present invention can ensure the security of key data, avoid the access of key data by malicious software, reduce the implementation costs and has a higher extensibility.Type: ApplicationFiled: September 22, 2011Publication date: July 11, 2013Applicants: BEIJING LENOVO SOFTWARE LTD., LENOVO (BEIJING) LIMITEDInventor: Xiaowen Wang
-
Publication number: 20130179666Abstract: A multi-core processor system includes a given core that includes a detecting unit that detects migration of a thread under execution by a synchronization source core to a synchronization destination core in the multi-core processor; an identifying unit that refers to a table identifying a combination of a thread and a register associated with the thread, and identifies a particular register corresponding to the thread for which migration was detected; a generating unit that generates synchronization control information identifying the synchronization destination core and the particular register; and a synchronization controller that, communicably connected to the multi-core processor, acquires from the given core, the synchronization control information, reads in from the particular register of the synchronization source core, a value of the particular register obtainable from the synchronization control information, and writes to the particular register of the synchronization destination core, the value.Type: ApplicationFiled: February 12, 2013Publication date: July 11, 2013Applicant: FUJITSU LIMITEDInventor: FUJITSU LIMITED
-
Patent number: 8484446Abstract: A microprocessor which realizes fast register saving and restoring which are involved in subroutine calls, and is capable of reducing the scale of a program. A register file is provided with at least one register for storing data to be used for computational processing. A saving memory stores therein data saved from the registers. A saving control unit saves data from a writing destination register to the saving memory when an instruction to write to the register is executed in a subroutine. Then the saving control unit restores data saved in the saving memory back to the original registers when an instruction to return from the subroutine is executed.Type: GrantFiled: March 24, 2008Date of Patent: July 9, 2013Assignee: Fujitsu Semiconductor LimitedInventor: Yoshimasa Takebe
-
Publication number: 20130173894Abstract: A computing platform may include heterogeneous processors (e.g., CPU and a GPU) to support sharing of virtual functions between such processors. In one embodiment, a CPU side vtable pointer used to access a shared object from the CPU 110 may be used to determine a GPU vtable if a GPU-side table exists. In other embodiment, a shared non-coherent region, which may not maintain data consistency, may be created within the shared virtual memory. The CPU and the GPU side data stored within the shared non-coherent region may have a same address as seen from the CPU and the GPU side. However, the contents of the CPU-side data may be different from that of GPU-side data as shared virtual memory may not maintain coherency during the run-time. In one embodiment, the vptr may be modified to point to the CPU vtable and GPU vtable stored in the shared virtual memory.Type: ApplicationFiled: September 24, 2010Publication date: July 4, 2013Inventors: Shoumeng Yan, Sai Luo, Xiaocheng Zhou, Ying Gao, Hu Chen, Bratin Saha
-
Patent number: 8478971Abstract: A system, apparatus and method for multithread handling on a multithread processing device are described herein. Embodiments of the present invention provide a multithread processing device for multithread handling including a plurality of registers operatively coupled to an instruction dispatch block, including thread-control registers for selectively disabling threads. In various embodiments, the multithread processing device may include a thread-operation register for selectively providing a lock to a first thread to prevent a second thread from disabling the first thread while the first thread has the lock. In still further embodiments, the multithread processing device may be configured to atomically disable and release a lock held by a thread. Other embodiments may be described and claimed.Type: GrantFiled: December 19, 2011Date of Patent: July 2, 2013Assignee: Marvell International Ltd.Inventors: Jack Kang, Yu-Chi Chuang, Hsi-Cheng Chu
-
Patent number: 8479217Abstract: Embodiments of the invention provide a method of creating, based on an operating-system-scheduled thread running on an operating-system-visible sequencer and using an instruction set extension, a persistent user-level thread to run on an operating-system-sequestered sequencer independently of context switch activities on the operating-system-scheduled thread. The operating-system-scheduled thread and the persistent user-level thread may share a common virtual address space. Embodiments of the invention may also provide a method of causing a service thread running on an additional operating-system-visible sequencer to provide operating system services to the persistent user-level thread. Embodiments of the invention may further provide apparatus, system, and machine-readable medium thereof.Type: GrantFiled: August 30, 2011Date of Patent: July 2, 2013Assignee: Intel CorporationInventors: Gautham Chinya, Hong Wang, Prashant Sethi, Shivnandan Kaushik, Bryant Bigbee, John Shen, Richard Hankins, Xiang Zou, Baiju V. Patel, Jason W. Brandt, Anil Aggarwal, John L. Reid
-
Patent number: 8473963Abstract: In one embodiment, the present invention includes a method of assigning a location within a shared variable for each of multiple threads and writing a value to a corresponding location to indicate that the corresponding thread has reached a barrier. In such manner, when all the threads have reached the barrier, synchronization is established. In some embodiments, the shared variable may be stored in a cache accessible by the multiple threads. Other embodiments are described and claimed.Type: GrantFiled: March 23, 2011Date of Patent: June 25, 2013Assignee: Intel CorporationInventors: Sailesh Kottapalli, John H. Crawford
-
Patent number: 8473723Abstract: A computer-implemented method for a computerized system having at least a first processor and a second processor, where each of the processors are operatively interconnected to a memory storing a set of data to be processed by a processor. The method includes monitoring data accessed by the first processor while executing, and if the second processor is at a shorter distance than the first processor from the monitored data, instructing to interrupt execution at the first processor and resume the execution at the second processor.Type: GrantFiled: December 10, 2009Date of Patent: June 25, 2013Assignee: International Business Machines CorporationInventors: Hillery C Hunter, Ronald P Luijten, Phillip Stanley-Marbell
-
Patent number: 8473728Abstract: Techniques for handling interrupts of multiple instruction threads within a multi-thread processing environment. The techniques include: interleavingly fetching and issuing instructions of (i) a first instruction execution thread and (ii) a second instruction thread for execution by an execution block of the multi-thread processing environment; providing a first interrupt signal via a first interrupt signal line within the multi-thread processing environment to interrupt fetching and issuing of instructions of the first instruction execution thread; and providing a second interrupt signal via a second interrupt signal line within the multi-thread processing environment to interrupt fetching and issuing of instructions of the second instruction execution thread. The first interrupt signal line and the second interrupt signal line are physically separate and distinct signal lines that are directly electrically coupled to one another.Type: GrantFiled: May 24, 2012Date of Patent: June 25, 2013Assignee: Marvell World Trade Ltd.Inventors: Jack Kang, Hsi-Cheng Chu, Yu-Chi Chuang
-
Patent number: 8458446Abstract: A processor includes an instruction fetch unit configured to issue instructions for execution, where the instructions are selected from a number of threads, where each given instruction has a corresponding thread identifier, and where at least some of the instructions specify operand(s) via register identifiers. A register file stores operands usable by the instructions, and may include several banks, each corresponding to a register identifiers and including several entries corresponding to the several threads, wherein the entries are configured to store data values. In response to receiving a request to read a particular register identifier for a given thread identifier, the register file may be configured to decode the given thread identifier to retrieve entries from the banks that correspond to the given thread identifier. The register file may further select, from among the retrieved entries, a data value corresponding to the particular register identifier to be output.Type: GrantFiled: September 30, 2009Date of Patent: June 4, 2013Assignee: Oracle America, Inc.Inventors: Christopher H. Olson, Xiang Shan Li, Robert T. Golla
-
Patent number: 8458707Abstract: An approach that uses a handler to detect asynchronous lock line reservation lost events, and switching tasks based upon whether a condition is true or a mutex lock is acquired is presented. A synergistic processing unit (SPU) invokes a first thread and, during execution, the first thread requests external data that is shared with other threads or processors in the system. This shared data may be protected with a mutex lock or other shared memory synchronization constructs. When requested data is not available, the SPU switches to a second thread and monitors lock line reservation lost events in order to check when the data is available. When the data is available, the SPU switches back to the first thread and processes the first thread's request.Type: GrantFiled: March 15, 2008Date of Patent: June 4, 2013Assignee: International Business Machines CorporationInventors: Maximino Aguilar, Jr., Michael Norman Day, Mark Richard Nutter
-
Patent number: 8458723Abstract: In one embodiment, the instant invention includes a method of executing computer instructions having steps of: a) receiving, by a first computer, an instruction to perform a task b) executing each thread of a process, corresponding to the task, to time stop point when each thread requires data from a second computer system; maintaining a data structure that identifies a state information of each thread at the time stop point, and ii) whenever each thread reaches its own stop point, each thread gives up its execution in favor of an execution of another thread; c) requesting, from the second computer system, the data needed to continue the execution of the process; d) receiving, from the second computer system, the requested data; and e) resuming the execution of the process based on the state information for each thread stored in the data structure at the time stop point.Type: GrantFiled: December 29, 2010Date of Patent: June 4, 2013Assignee: Calm Energy Inc.Inventors: Hubert Delany, John Johnson
-
Publication number: 20130138922Abstract: Systems and methods are disclosed for enhancing the throughput of a processor by minimizing the number of transfers of data associated with data transfer between a register file and a memory stack. The register file used by a processor running an application is partitioned into a number of blocks. A subset of the blocks of the register file is defined in an application binary interface enabling the subset to be pre-allocated and exposed to the application binary interface. Optionally, blocks other than the subset are not exposed to the application binary interface so that the data relating to application function switch or a context switch is not transferred between the unexposed blocks and a memory stack.Type: ApplicationFiled: November 29, 2011Publication date: May 30, 2013Applicant: International Business Machines CorporationInventors: Revital Eres, Amit Golander, Nadav Levison, Sagi Manole, Ayal Zaks
-
Publication number: 20130132711Abstract: One embodiment of the present invention sets forth a technique instruction level and compute thread array granularity execution preemption. Preempting at the instruction level does not require any draining of the processing pipeline. No new instructions are issued and the context state is unloaded from the processing pipeline. When preemption is performed at a compute thread array boundary, the amount of context state to be stored is reduced because execution units within the processing pipeline complete execution of in-flight instructions and become idle. If, the amount of time needed to complete execution of the in-flight instructions exceeds a threshold, then the preemption may dynamically change to be performed at the instruction level instead of at compute thread array granularity.Type: ApplicationFiled: November 22, 2011Publication date: May 23, 2013Inventors: Lacky V. SHAH, Gregory Scott Palmer, Gernot Schaufler, Samuel H. Duncan, Philip Browning Johnson, Shirish Gadre, Timothy John Purcell
-
Patent number: 8447959Abstract: A plurality of register windows in a multithread processor are each provided for a corresponding thread and capable of storing data to be used for instruction processing in an arithmetic unit. A work register in the multithread processor is capable of mutually transferring data with respect to the register windows and the arithmetic unit. A multithread control unit in the multithread processor controls data transfer among the register windows, the work register and the arithmetic unit on the basis of an execution thread identifier identifying the thread to be executed in the arithmetic unit. This enables conducting the multithread processing at a high speed.Type: GrantFiled: August 10, 2010Date of Patent: May 21, 2013Assignee: Fujitsu LimitedInventor: Toshio Yoshida
-
Patent number: 8443211Abstract: This disclosure describes techniques for using a non-volatile-memory device such as flash memory to store memory data during hibernation or suspend. By so doing, hard drives and/or data are safer, and less power may be used.Type: GrantFiled: December 11, 2009Date of Patent: May 14, 2013Assignee: Marvell World Trade Ltd.Inventors: Qun Zhao, Hsing-Yi Chiang, Xinhai Kang, Chee Hoe Chu, Lihan Chang, Jin-Nan Liaw, Robyn Jie Li
-
Patent number: 8438571Abstract: In an embodiment, asynchronous conflict events are received during a previous rollback period. Each of the asynchronous conflict events represent conflicts encountered by speculative execution of a first plurality of work units and may be received out-of-order. During a current rollback period, a first work unit is determined whose speculative execution raised one of the asynchronous conflict events, and the first work unit is older than all other of the first plurality of work units. A second plurality of work units are determined, whose ages are equal to or older than the first work unit, wherein each of the second plurality of work units are assigned to respective executing threads. Rollbacks of the second plurality of work units are performed. After the rollbacks of the second plurality of work units are performed, speculative executions of the second plurality of work units are initiated in age order, from oldest to youngest.Type: GrantFiled: February 24, 2010Date of Patent: May 7, 2013Assignee: International Business Machines CorporationInventors: Thomas M. Gooding, John Kevin O'Brien, Kai-Ting Amy Wang, Xiaotong Zhuang
-
Publication number: 20130111194Abstract: A method and system to provide user-level multithreading are disclosed. The method according to the present techniques comprises receiving programming instructions to execute one or more shared resource threads (shreds) via an instruction set architecture (ISA). One or more instruction pointers are configured via the ISA; and the one or more shreds are executed simultaneously with a microprocessor, wherein the microprocessor includes multiple instruction sequencers.Type: ApplicationFiled: December 20, 2012Publication date: May 2, 2013Inventors: Ed Grochowski, Hong Wang, John P. Shen, Perry H. Wang, Jamison D. Colins, James Held, Partha Kundu, Raya Leviathan, Tin-Fook Ngai
-
Publication number: 20130097411Abstract: A method and apparatus for transferring architected state bypasses system memory by directly transmitting architected state between processor cores over a dedicated interconnect. The transfer may be performed by state transfer interface circuitry with or without software interaction. The architected state for a thread may be transferred from a first processing core to a second processing core when the state transfer interface circuitry detects an error that prevents proper execution of the thread corresponding to the architected state. A program instruction may be used to initiate the transfer of the architected state for the thread to one or more other threads in order to parallelize execution of the thread or perform load balancing between multiple processor cores by distributing processing of multiple threads.Type: ApplicationFiled: December 10, 2012Publication date: April 18, 2013Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: INTERNATIONAL BUSINESS MACHINES CORP
-
Patent number: 8424015Abstract: Mechanisms for executing a transaction in the data processing system are provided. A transaction checkpoint data structure is generated in internal registers of a processor. The transaction checkpoint data structure stores transaction checkpoint data representing a state of program registers at a time prior to execution of a corresponding transaction. The transaction, which comprises a first portion of code that is to be executed by the processor, is executed. An interrupt of the transaction is received while executing the transaction and, as a result, the transaction checkpoint data is stored to a data structure in a memory of the data processing system. A second portion of code is then executed. A state of the program registers is restored using the data structure in the memory of the data processing system in response to an event occurring causing a switch of execution of the processor back to execution of the transaction.Type: GrantFiled: September 30, 2010Date of Patent: April 16, 2013Assignee: International Business Machines CorporationInventors: Richard L. Arndt, Harold W. Cain, III, Bradly G. Frey, Cathy May
-
Patent number: 8424014Abstract: A system and method employing the system for pushing work request associated contexts into a computer device includes issuing a request to a device in a computer system. Context data is fetched from a data storage device for the device. Context is determined for specified data requests, and context misses in the device are predicted. The system and method then initiates a context push and pushes the context into the device using a controller when a context miss is detected. Thereby, reducing the context miss latency time or delay in retrieving context data.Type: GrantFiled: February 27, 2009Date of Patent: April 16, 2013Assignee: International Business Machines CorporationInventors: Florian Alexander Auernhammer, Patricia Maria Sagmeister
-
Patent number: 8424016Abstract: Briefly, techniques to manage interrupts and swaps of threads operating in critical region. In an embodiment, a thread is to be interrupted during a first critical region with an interrupt routine. The thread may be set to restart at a beginning of the first critical region in response to an indication that the thread is working in a critical region. Other embodiments are also claimed and disclosed.Type: GrantFiled: March 29, 2011Date of Patent: April 16, 2013Assignee: Intel CorporationInventor: Joseph S. Cavallo
-
Patent number: 8418187Abstract: A data processing apparatus has first processing circuitry which is architecturally compatible with second processing circuitry, but with the first processing circuitry being miero-architccturally different from the second processing circuitry. A switch controller performs a handover operation to transfer performance of the workload from source processing circuitry to destination processing circuitry, with the source processing circuitry being one of the first and second processing circuitry and the destination processing circuitry being the other of the first and second processing circuitry. During the handover operation, the switch controller causes the source processing circuitry to makes it current architectural state available to the destination processing circuitry and is necessary for the destination processing circuitry to successfully lake over performance of the workload from the source processing circuitry.Type: GrantFiled: March 1, 2010Date of Patent: April 9, 2013Assignee: ARM LimitedInventors: Peter Richard Greenhalgh, Richard Roy Grisenthwaite
-
Patent number: 8407714Abstract: An arithmetic device simultaneously processes a plurality of threads and may continue the process by minimizing the degradation of the entire performance although a hardware error occurs. An arithmetic device 100 includes: an instruction execution circuit 101 capable of selectively executing a mode in which the instruction sequences of a plurality of threads are executed and a mode in which the instruction sequence of a single thread is executed; and a switch indication circuit 102 instructing the instruction execution circuit 101 to switch a thread mode.Type: GrantFiled: December 15, 2009Date of Patent: March 26, 2013Assignee: Fujitsu LimitedInventors: Norihito Gomyo, Toshio Yoshida, Ryuichi Sunayama
-
Patent number: 8405666Abstract: A system and method are disclosed for recreating graphics processing unit (GPU) state information associated with a migrated virtual machine (VM). A VM running on a first VM host coupled to a first graphics device, comprising a first GPU, is migrated to a second VM host coupled to a second graphics device, in turn comprising a second GPU. A context module coupled to the first GPU reads its GPU state information in its native GPU state representation format and then converts the GPU state information into an intermediary GPU state representation format. The GPU state information is conveyed in the intermediary GPU state representation format to the second VM host, where it is received by a context module coupled to the second GPU. The context module converts the GPU state information related to the first GPU from the intermediary GPU state representation format to the native GPU state representation format of the second GPU.Type: GrantFiled: October 8, 2009Date of Patent: March 26, 2013Assignee: Advanced Micro Devices, Inc.Inventor: Tariq Masood
-
Patent number: 8407715Abstract: A method of optimizing multi-set context switch for embedded processors includes the steps of partitioning a plurality of registers into a plurality of register sets based on a live-range-sensitive context-switch procedure that is associated with a usage frequency of each of the registers, storing contents of first target registers according to live set information of a current task, wherein the first target registers are selected from the register sets, determining a next task by an operating system and updating the live set information according to the next task, and restoring contents of second target registers according to the updated live set information, wherein the second target registers are selected from the register sets.Type: GrantFiled: April 30, 2007Date of Patent: March 26, 2013Assignee: National Tsing Hua UniversityInventors: Jenq Kuen Lee, Kun Yuan Hsieh, Yung Chia Lin
-
Patent number: 8392932Abstract: An information processing device for causing a processor to execute a plurality of threads by switching between them. Each thread performs a process in correspondence with an obtainment of an event. The information processing device, when causing a second thread to transit from a non-execution state to an execution state to replace a first thread, detects whether or not, in the first thread having transited to the non-execution state, a next start position of a process belongs to an already processed part, detects whether or not a start position of a process in the second thread in the execution state belongs to the processed part; and determines whether or not to set a context for execution of the second thread into the processor in accordance with detection results of the first and second detection units, and performs processing in accordance with the determination.Type: GrantFiled: May 13, 2009Date of Patent: March 5, 2013Assignee: Panasonic CorporationInventor: Takuji Kawamoto
-
Patent number: 8392694Abstract: A method, system and computer program product for issuing one or more software initiated operations for creating a checkpoint of a register file and memory, and for restoring a register file and memory to the checkpointed state. At the execution of a checkpoint operation, the system returns a condition code indicating success or failure. When the condition code is set equal to one, one or more checkpoints are initiated. Contents of the register file and gated store buffer are stored each time the one or more checkpoints are initiated. When the checkpoint is created, the system notifies software when a hardware checkpoint capacity has been reached. One or more of the software checkpoint, hardware checkpoint, and handler checkpoint are utilized to provide a more precise point of restoration. During software execution, the register file and gated store buffer can be restored as defined by the one or more previous checkpoints.Type: GrantFiled: September 15, 2009Date of Patent: March 5, 2013Assignee: International Business Machines CorporationInventors: Colin B. Blundell, Harold Wade Cain, III, Gheorghe C. Cascaval, Maged Milad Michael
-
Patent number: 8392171Abstract: Methods and systems for register mapping in emulation of a target system on a host system are disclosed. Statistics for use of a set of registers of a target system processor are determined. Based on the statistics a first subset of the target system registers, including one or more most commonly used registers is determined. The registers in the first subset are directly mapped to a first group of registers of a host system processor. A second subset of the set of target system registers is dynamically mapped to a second group of registers of the host system processor.Type: GrantFiled: August 12, 2010Date of Patent: March 5, 2013Assignee: Sony Computer Entertainment Inc.Inventors: Stewart Sargaison, Victor Suba