VU Execution Times ============================ Vers. 0.1 2004/09/12 by blue For correction or comments mail to blue at neoscientists.org Updates are available from http://www.neoscientists.org/ =================================================================== VU Micro Mode Upper Instructions ------------------------------------------------------------------ instr. | description | throughput/latency --------+-----------------------------------+-------------------- ABS | absolute value | 1/4 ADD | add | 1/4 ADDi | add to I | 1/4 ADDq | add to Q | 1/4 ADDbc | broadcast add | 1/4 ADDA | add to accu | 1/4 ADDAi | add I to accu | 1/4 ADDAq | add Q to accu | 1/4 ADDAbc | broadcast add to accu | 1/4 CLIP | clipping judgement | 1/4 FTOI0 | convert to fixed point | 1/4 FTOI4 | convert to fixed point | 1/4 FTOI12 | convert to fixed point | 1/4 FTOI15 | convert to fixed point | 1/4 ITOF0 | convert to floating point | 1/4 ITOF4 | convert to floating point | 1/4 ITOF12 | convert to floating point | 1/4 ITOF15 | convert to floating point | 1/4 MADD | product sum | 1/4 MADDi | product sum with I | 1/4 MADDq | product sum by Q | 1/4 MADDbc | broadcast product sum | 1/4 MADDA | product sum to accu | 1/4 MADDAi | product sum by I to accu | 1/4 MADDAq | product sum by Q to accu | 1/4 MAX | maximum value | 1/4 MAXi | maximum value | 1/4 MAXbc | maximum value | 1/4 MINI | minimum value | 1/4 MINIi | minimum value | 1/4 MINIbc | minimum value | 1/4 MSUB | multiply and subtract | 1/4 MSUBi | multiply and sub with I | 1/4 MSUBq | multiply and sub by Q | 1/4 MSUBbc | broadcast multiply and sub | 1/4 MSUBA | multiply and sub to accu | 1/4 MSUBAi | multiply and sub with I to accu | 1/4 MSUBAq | multiply and sub by Q to accu | 1/4 MSUBAbc | broadcast mul and sub to accu | 1/4 MUL | multiply | 1/4 MULi | multiply by I | 1/4 MULq | multiply by Q | 1/4 MULbc | multiply by broadcast | 1/4 MULA | multiply to accu | 1/4 MULAi | multiply by I to accu | 1/4 MULAq | multiply by Q to accu | 1/4 MULAbc | broadc. mul by broadcast to accu | 1/4 NOP | no operation | 1/4 OPMULA | vector outer product | 1/4 OPMSUB | vector outer product | 1/4 SUB | subtract | 1/4 SUBi | subtract I | 1/4 SUBq | subtract Q | 1/4 SUBbc | broadcast subtract | 1/4 SUBA | subtract to accu | 1/4 SUBAi | subtract I to accu | 1/4 SUBAq | subtract Q to accu | 1/4 SUBAbc | broadcast subtract to accu | 1/4 =================================================================== VU Micro Mode Lower Instructions ------------------------------------------------------------------ instr. | description | throughput/latency --------+-----------------------------------+-------------------- B | unconditional branch | 2/2 BAL | save address and branch uncond. | 2/2 DIV | divide | 7/7 EATAN | arctangent | 53/54 EATANxy | arctangent | 53/54 EATANxz | arctangent | 53/54 EEXP | exponent | 43/44 ELENG | length | 17/18 ERCPR | reciprocal number | 11/12 ERLENG | reciprocal number of length | 23/24 ERSADD | reciprocal number of sum of sqrs | 17/18 ERSQRT | reciprocal number of sqrt | 17/18 ESADD | sum of square numbers | 10/11 ESIN | sine | 28/29 ESQRT | square root | 11/12 ESUM | sum of each field | 11/12 FCAND | test clipping flag | 1/1 FCEQ | test clipping flag | 1/1 FCGET | test clipping flag | 1/1 FCOR | test clipping flag | 1/1 FCSET | set clipping flag | 1/4 FMAND | test MAC flag check | 1/1 FMEQ | test MAC flag check | 1/1 FMOR | test MAC flag check | 1/1 FSAND | test status flag check | 1/1 FSEQ | test status flag check | 1/1 FSOR | test status flag | 1/1 FSSET | set sticky flags | 1/4 IADD | add integer | 1/1 IADDI | add immediate integer | 1/1 IADDIU | add immediate integer unsigned | 1/1 IAND | logical product | 1/1 IBEQ | conditional branch | 2/2 IBGEZ | conditional branch | 2/2 IBGTZ | conditional branch | 2/2 IBLEZ | conditional branch | 2/2 IBLTZ | conditional branch | 2/2 IBNE | conditional branch | 2/2 ILW | integer load word with offset | 1/4 ILWR | integer load word | 1/4 IOR | logical sum | 1/1 ISUB | integer subtract | 1/1 ISUBIU | integer subtract unsigned | 1/1 ISW | integer store word with offset | 1/4 ISWR | integer store word | 1/4 JALR | jump address link register | 2/2 JR | jump register | 2/2 LOI | load immediate to I (pseudo) | 1/1 LQ | load qword | 1/4 LQD | load qword with pre-decrement | 1/4 LQI | load qword with post-increment | 1/4 MFIR | move from int reg to float reg | 1/4 MFP | move from P to float reg | 1/4 MOVE | transfer between float regs | 1/4 MR32 | move with rotate | 1/4 MTIR | move from float reg to int reg | 1/1 RGET | get random number | 1/4 RINIT | random number initialise | 1/1 RNEXT | next random number | 1/4 RSQRT | square root division | 13/13 RXOR | random number set | 1/1 SQ | store qword | 1/4 SQD | store qword with pre-decrement | 1/4 SQI | store qword with post-increment | 1/4 SQRT | square root | 7/7 WAITP | P register synchronize | 1~54/1~54 WAITQ | Q register synchronize | 1~13/1~13 XGKICK | GIF control | 1~/1~ XITOP | VIF control | 1/1 XTOP | VIF control | 1/1