Method and apparatus for supporting vector operations on a multi-threaded microprocessor
First Claim
Patent Images
1. A method for supporting vector operations on a non-vector multi-threaded microprocessor, comprising:
- while executing a program, detecting a vector instruction in the program; and
mapping the vector instruction onto the non-vector multi-threaded microprocessor, wherein the non-vector multi-threaded microprocessor does not include vector registers or enough processor registers to enable performing an operation on a vector of arguments in a single instruction;
wherein mapping the vector instruction comprises using at least one of a just-in-time compiler, a trap-handling system, an instruction emulation system, or a library to distribute one or more sub-operations from the vector instruction across a set of threads, within one or more processor cores, that execute in parallel in different thread contexts on the non-vector multi-threaded microprocessor and generating a set of instructions for the set of threads from the sub-operations.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that supports vector operations on a multi-threaded microprocessor. During operation, the system detects a vector instruction in a program. The system maps this vector instruction onto the thread contexts of the multi-threaded microprocessor. As part of the mapping process, the system splits the vector instruction across a set of threads that execute in parallel and generates a set of instructions for the set of threads. This mapping process allows the vector instruction to be executed efficiently across multiple threads.
17 Citations
18 Claims
-
1. A method for supporting vector operations on a non-vector multi-threaded microprocessor, comprising:
-
while executing a program, detecting a vector instruction in the program; and mapping the vector instruction onto the non-vector multi-threaded microprocessor, wherein the non-vector multi-threaded microprocessor does not include vector registers or enough processor registers to enable performing an operation on a vector of arguments in a single instruction; wherein mapping the vector instruction comprises using at least one of a just-in-time compiler, a trap-handling system, an instruction emulation system, or a library to distribute one or more sub-operations from the vector instruction across a set of threads, within one or more processor cores, that execute in parallel in different thread contexts on the non-vector multi-threaded microprocessor and generating a set of instructions for the set of threads from the sub-operations. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for supporting vector operations on a non-vector multi-threaded microprocessor the method comprising:
-
while executing a program, detecting a vector instruction in the program; and mapping the vector instruction onto the non-vector multi-threaded microprocessor, wherein the non-vector multi-threaded microprocessor does not include vector registers or enough processor registers to enable performing an operation on a vector of arguments in a single instruction; wherein mapping the vector instruction comprises using at least one of a just-in-tune compiler, a trap-handling system, an instruction emulation system, or a library to distribute one or more sub-operations from the vector instruction across a set of threads, within one or more processor cores, that execute in parallel in different thread contexts on the non-vector multi-threaded microprocessor and generating a set of instructions for the set of threads from the sub-operations. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus for supporting vector operations on a non-vector multi-threaded microprocessor comprising:
-
a detection mechanism configured to detect a vector instruction in a program while executing the program; and a mapping mechanism configured to map the vector instruction onto the multi-threaded microprocessor, wherein the non-vector multi-threaded microprocessor does not include vector registers or enough processor registers to enable performing an operation on a vector of arguments in a single instruction; wherein mapping the vector instruction comprises using at least one of a just-in-time compiler, a trap-handling system, an instruction emulation system, or a library to distribute one or more sub-operations from the vector instruction across a set of threads, within one or more processor cores, that execute in parallel in different thread contexts on the non-vector multi-threaded microprocessor and generating a set of instructions for the set of threads from the sub-operations. - View Dependent Claims (16, 17, 18)
-
Specification