A system and method for performing vector arithmetic is disclosed. The method includes loading two operand vectors, each composed of a number of vector elements, into two storage locations. A selected arithmetic operation is performed on the operand vectors to produce a result vector having the numb
A system and method for performing vector arithmetic is disclosed. The method includes loading two operand vectors, each composed of a number of vector elements, into two storage locations. A selected arithmetic operation is performed on the operand vectors to produce a result vector having the number of vector elements. Each vector element of the result vector is associated with an arithmetic logic cell that has a first input that can receive any vector element from the first vector and a second input that can receive any vector element from the second vector. Accordingly each vector element of the result vector is a function of any two individual vector elements of the operand vectors. By applying the operand vector elements to the appropriate arithmetic logic cells, and by selecting the appropriate arithmetic operation, complex vector operations can be performed efficiently.
대표청구항▼
What is claimed is: 1. A method, comprising: determining a first vector based on a first data pattern indicated by a data pattern table, the first data pattern indicative of a corresponding memory location for each of a plurality of vector elements of the first vector; determining a second vector b
What is claimed is: 1. A method, comprising: determining a first vector based on a first data pattern indicated by a data pattern table, the first data pattern indicative of a corresponding memory location for each of a plurality of vector elements of the first vector; determining a second vector based on a second data pattern indicated by the data pattern table, the second data pattern indicative of a corresponding memory location for each of a plurality of vector elements of the second vector; selecting, based on a first entry of an array pattern table, one of the plurality of vector elements of the first vector to be provided to a first operand input of a first arithmetic processor; selecting, based on a second entry of the array pattern table, one of the plurality of vector elements of the second vector to be provided to a second operand input of the first arithmetic processor; calculating a first result based on information at the first operand input and information at the second operand input; storing the first result at a first vector element of a resultant vector, the first vector element based on a third entry of the array pattern table. 2. The method of claim 1, further comprising: identifying, based on information associated with the first instruction, a first arithmetic operation to be performed by the first arithmetic processor, wherein the first arithmetic processor is capable of performing a plurality of arithmetic operations. 3. The method of claim 2, wherein: calculating the first result comprises calculating the first result based on the first arithmetic operation, information at the first operand input, and information at the second operand input. 4. The method of claim 1, further comprising: selecting, based a fourth entry of the array pattern table, a second of the plurality of vector elements of the first vector to be provided to a first operand input of a second arithmetic processor; and selecting, based on a fifth entry of the array pattern table, a second of the plurality of vector elements of the second vector to be provided to a second operand input of the second arithmetic processor. 5. The method of claim 1, further comprising: selecting, based on a fourth entry of the array pattern table, the one of the plurality of vector elements of the first vector to be provided to a first operand input of a second arithmetic processor; and selecting, based a fifth entry of the array pattern table, the one of the plurality of vector elements of the second vector to be provided to a second operand input of the second arithmetic processor. 6. The method of claim 1, further comprising: selecting, based a fourth entry of the array pattern table, the one of the plurality of vector elements of the first vector to be provided to a first operand input of a second arithmetic processor; and selecting, based on a fifth entry of the array pattern table, a second of the plurality of vector elements of the second vector to be provided to a second operand input of the second arithmetic processor. 7. The method of claim 1, wherein the first instruction identifies an index with respect to the array pattern table. 8. The method of claim 1, wherein selecting the one of the plurality of vector elements of the first vector comprises loading the first vector element at a first storage location associated with the first operand input of the first arithmetic processor. 9. The method of claim 1, wherein selecting the one of the plurality of vector elements of the first vector comprises coupling a storage location storing the one of the plurality of vector elements to the first operand input of the first arithmetic processor. 10. The method of claim 1, wherein determining the first vector comprises loading a first element of the first vector from a first memory bank into a first register and loading a second element of the first vector from a second memory bank into the first register. 11. The method of claim 10, wherein determining the first vector comprises determining the first memory bank and the second memory bank based on the first data pattern. 12. The method of claim 10, wherein determining the second vector comprises loading a first element of the second vector from a third memory bank into a second register and loading a second element of the first vector from a fourth memory bank into the second register. 13. A method, comprising selecting a first data pattern from a first data pattern table, the first data pattern indicative of a corresponding memory location for each of a plurality of vector elements of a first vector; determining the first vector based on the first data pattern; selecting a second data pattern from a second data pattern table, the second data pattern indicative of a corresponding memory location for each of a plurality of vector elements of a second vector; loading a second vector based on the second data pattern; decoding a first instruction; selecting, based on a first entry of an array pattern table indicated by the first instruction, a first vector element of the first vector as a first operand of a first arithmetic processor and, based on a second entry of the array pattern table a first vector element of the second vector as a second operand of the first arithmetic processor, wherein the first vector comprises a plurality of vector elements and the second vector comprises a plurality of vector elements; selecting a first vector element of a result vector based on a third entry of the array pattern table; and calculating the first vector element of the result vector based on the first operand and the second operand. 14. A device, comprising: a first storage location to store a first plurality of vector elements based on a first data pattern from a first data pattern table, the first data pattern indicative of a corresponding memory location for each of the first plurality of vector elements; a second storage location to store a second plurality of vector elements based on a second data pattern from the first data pattern table, the second data pattern indicative of a corresponding memory location for each of the second plurality of vector elements; a plurality of arithmetic logic cells, each one comprising: a first multiplexer coupled to the first plurality of vector elements, a control input, and an output to provide a selected one of the first plurality of vector elements based on a first entry of a data pattern table and a second entry of the data pattern table; a second multiplexer coupled to the second plurality of vector elements, a control input, and an output to provide a selected one of the second plurality of vector elements based on a third entry of the data pattern table and the second entry of the data pattern table; and an arithmetic logic unit having a first input coupled to the output of the first multiplexer, a second input coupled to the output of the second multiplexer, a control input, and an output to provide an arithmetic result based on the first input, the second input, and the control input; and an instruction execution module comprising a first output coupled to the control input of the first multiplexer and a second output coupled to the control input of the second multiplexer. 15. The device of claim 14, further comprising: a third storage location coupled to the output of each arithmetic logic unit of the matrix of arithmetic logic cells. 16. The device of claim 14, wherein the instruction execution module comprises: an instruction decode module having an input to receive a vector instruction, a first plurality of control outputs coupled to control outputs of the instruction execution module, and a second plurality of control outputs, each of the second plurality of control outputs coupled to corresponding ones of the control inputs of the arithmetic logic units of the plurality of arithmetic logic cells; and wherein the instruction decode module applies first control signals via the first plurality of control outputs to apply corresponding ones of the first and second plurality of vector elements at one or more of the arithmetic logic cells and applies second control signals via the second plurality of control outputs to select the operation of one or more of the arithmetic logic cells based on the vector instruction.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (19)
Ali ; Mian Zaheer, Configurable parallel arithmetic structure for recursive digital filtering.
Estes Mark D. (4509 Bunny Run VI Austin TX 78746), Fixed interconnection network method and apparatus for a modular mixed-resolution, N-dimensional configuration control m.
Fujii Hiroaki (Kokubunji CA JPX) Hamanaka Naoki (Palo Alto CA) Tanaka Teruo (Hachoiji JPX) Inagami Yasuhiro (Kodaira JPX) Tamaki Yoshiko (Kodaira JPX), Information processing apparatus having a register file used interchangeably both as scalar registers of register window.
Longhenry Brian E. ; Thome Gary W. ; Thayer John S., MPEG motion compensation using operand routing and performing add and divide in a single instruction.
van Hook Timothy ; Hsu Peter ; Huffman William A. ; Moreton Henry P. ; Killian Earl A., Method for providing extended precision in SIMD vector arithmetic operations.
Kelly Thomas (Glasgow GBX) Mackenzie Lewis M. (Glasgow GBX) Sutherland Robert J. (Glasgow GBX), Parallel processor with array of clustered processing elements having inputs seperate from outputs and outputs limited t.
Chiarulli Donald M. (4724 Newcomb Dr. Baton Rouge LA 70808) Rudd W. G. (Dept. of Computer Science Oregon State University Corvallis OR 97331) Buell Duncan A. (1212 Chippenham Dr. Baton Rouge LA 70808, Processor utilizing reconfigurable process segments to accomodate data word length.
Aono Kunitoshi (Hirakata JPX) Toyokura Masaki (Katano JPX) Araki Toshiyuki (Yawata JPX) Ohtani Akihiko (Moriguchi JPX) Kodama Hisashi (Osaka JPX) Okamoto Kiyoshi (Moriguchi all of JPX), Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in.
Macias Nicholas J. ; Henry ; III Lawrence B. ; Raju Murali Dandu, Self-reconfigurable parallel processor made from regularly-connected self-dual code/data processing cells.
Wang Yulun (Goleta CA) Srinivasan Partha (Goleta CA), Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units.
Craig Jack W. ; Kancler H. C. ; McBride C. W., Variable architecture computer with vector parallel processor and using instructions with variable length fields.
Barlow,Stephen; Bailey,Neil; Ramsdale,Timothy; Plowman,David; Swann,Robert, Vector/scalar system with vector unit producing scalar result from vector results according to modifier in vector instruction.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.