Abstract:
PROBLEM TO BE SOLVED: To provide a method, apparatus, system that enables effective communication between instruction set architecture-based sequencers having heterogeneous resources.SOLUTION: The method comprises: directly communicating a request from a user-level application to an accelerator coupled to a first instruction sequencer via the first instruction sequencer, where the accelerator comprises a heterogeneous resource with respect to the first instruction sequencer; providing the request to the accelerator via an exo-skeleton associated with the accelerator; and performing a first function in the accelerator in response to the request in parallel with a second function in the first instruction sequencer.
Abstract:
PROBLEM TO BE SOLVED: To provide a microprocessor that varies an energy amount which is consumed by processing each instruction according to the amount of available parallelism, in software programs for both a scalar task and a parallel task.SOLUTION: In a device and a method for changing a configuration of a multi-core processor, a throttle module (or a throttle logic) can determine the amount of parallelism present in a program being currently executed, and change execution of threads of the program on various cores. When the amount of the parallelism is large, the processor can be configured to run a larger amount of the threads on cores configured to consume less power. When the amount of the parallelism is small, the processor can be configured to run a smaller amount of the threads on cores configured to acquire greater scalar performance.
Abstract:
PROBLEM TO BE SOLVED: To manage synchronous communication between two or more instruction threads executed by one or more multiprocessors or multiprocessor cores.SOLUTION: A mechanism for identifying a pair of memory locations to be notified when other threads correct values stored in their memory locations is provided to a thread. The notification is done by a user level interruption/exception mechanism within a microprocessor 101, or is done by some other logic or software within a computer system. Synchronous communication between threads is realized by notifying the thread about a specific cache coherency event related to a cache line accessed by one or more other threads.
Abstract:
PROBLEM TO BE SOLVED: To provide a microprocessor that operates well on both a scalar task and a parallel task. SOLUTION: A method and apparatus for changing the configuration of a multi-core processor is disclosed. A throttle module (or throttle logic) 210 may determine the amount of parallelism present in the currently-executing program, and change the execution of the threads of that program on the various cores. If the amount of parallelism is high, then the processor may be configured to run a larger amount of threads on cores configured to consume less power. If the amount of parallelism is low, then the processor may be configured to run a smaller amount of threads on cores configured for greater scalar performance. COPYRIGHT: (C)2010,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To provide a method, apparatus and system for scheduling OS-independent 'shreds' without intervention of an operating system. SOLUTION: For at least in one embodiment, the shred is scheduled for execution by a scheduler routine rather than the operating system. The scheduler routine may run on each enabled sequencer. The schedulers may retrieve shred descriptors from a queue system. The sequencer associated with the scheduler may then execute the shred described by the descriptor. Other embodiments are also described and claimed. COPYRIGHT: (C)2011,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To provide a method for efficiently check memory properties in a microprocessor system. SOLUTION: Attribute bits indicating that a program has recently checked that a block of memory is appropriate for the current portion of the program to access, indicating that the program has analyzed this block of memory by a performance monitoring tool, or having properties such as access right are included in a cache memory line, and correspond to only one software thread of the program having multisoftware threads. The attribute bits are used to check the memory state of an address used by the program. COPYRIGHT: (C)2007,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To provide a method for scheduling threads without restricting the scheduling to the small number of threads and without exerting a negative influence on performance for a system that supports concurrent execution of a plurality of software threads such as SMT, SMP and/or CMP systems. SOLUTION: Shreds 130 to 136 are generated and managed by a user-level program and scheduled so as to run on a sequencer sequestered from an operating system 140. An abstraction layer provides respective functions of sequestration logic, proxy execution logic, transition detection and shred suspension logic, and sequencer arithmetic logic. COPYRIGHT: (C)2011,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To provide a method and a device for reducing a memory latency in a software application. SOLUTION: A performance analysis tool 208 is used to profile a resource use amount of the software application 210, and specifies an area of the software application 210 experiencing a performance bottleneck. A compiler runtime command is generated within the software application, to generate and manage a helper thread. The helper thread prefetches a data in the specified areas of the software application experiencing the performance bottleneck. A counting mechanism is inserted into the helper thread and the counting mechanism is inserted into a main thread, to help ensure the prefetched data is not removed from a cache before the main thread is able to take advantage of the prefetched data. COPYRIGHT: (C)2011,JPO&INPIT
Abstract:
PROBLEM TO BE SOLVED: To provide a method for generating a persistent user-level thread. SOLUTION: Embodiments of the invention provide a method of creating, based on an operating-system (OS)-scheduled thread running on an OS-visible sequencer and using an instruction set extension, a persistent user-level thread to run on an OS-sequestered sequencer independently of context switch activities on the OS-scheduled thread. The OS-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 OS-visible sequencer to provide OS services to the persistent user-level thread. Embodiments of the invention may further provide apparatus, system, and machine-readable medium thereof. COPYRIGHT: (C)2007,JPO&INPIT