text:
A N-byte vector processor is provided which can emulate 2N-byte processor operations by executing two N-byte operations sequentially. By using N-byte architecture to process 2N-byte wide data, chip size and costs are reduced. One embodiment allows 64-byte operations to be implemented with a 32-byte vector processor by executing a 32-byte instruction on the first 32-bytes of data and then executing a 32-byte instruction on the second 32-bytes of data. Registers and instructions for 64-byte operation are emulated using two 32-byte registers and instructions, respectively, with some instructions requiring modification to accommodate 64-byte operations between adjacent elements, operations requiring specific element locations, operations shifting elements in and out of registers, and operations specifying addresses exceeding 32 bytes.
1. An N-data element vector processor unit for performing 2N-data element operations, comprising:
an emulator coupled to an instruction unit for modifying N-data element instructions from said instruction unit for 2N-data element operation;
a register file containing multiple N-data element registers, each of two said N-data element registers combined to form a 2N-data element register coupled to said emulator;
a first set of N-bit special purpose scalar registers, wherein each bit in a pair of N-bit special purpose scalar registers from said first set represents one data element of the 2N data elements in a 2N-data element register;
an N-data element execution unit for sequentially operating on data in said two N-data element registers coupled to said register file; and
a multiple of 2N-data element accumulators, each of two said 2N-data element accumulators combined to form a 4N-data element accumulator coupled to said execution unit.
2. The vector processor of claim 1 further comprising a mode bit to indicate N-data element or 2N-data element operation.
3. The vector processor claim 1 further comprising a second set of N-bit special purpose scalar registers, wherein each bit in one of said N-bit special purpose scalar registers from said second set represents one data element of the N data elements in an N-data element register.
4. The vector processor of claim 1 further comprising an additional bit in said instructions to specify 2N data element locations.
5. The vector processor of claim 1 further comprising a bit in said N-data element instructions for specifying a first N-data element register or a second N-data element register.
6. The vector processor of claim 1, wherein said N-data element instructions operate on said data elements independent of a width of said data element registers.
7. The vector processor of claim 1, wherein said 2N-data element operations are symmetrical with respect to upper and lower halves of said 2N-data element operations.
8. The vector processor of claim 1, wherein said N-data element instructions operate on odd and even data elements.
9. A method of emulating 2N-data element operations using N-data element vector processor architecture, comprising:
combining two N-data element registers to form one 2N-data element register;
identifying each of 2N data elements in said 2N-data element register with a corresponding single bit from two N-bit special purpose scalar registers;
modifying N-data element instructions to emulate 2N-data element instructions;
executing an N-data element instruction on data in a first of said two N-data element registers; and
executing an N-data element instruction on data in a second of said two N-data element registers.
10. The method of claim 9 further comprising the step of designating an N-data element operation or said 2N-data element operation with a mode bit.
11. The vector processor of claim 1, wherein said N-data element registers are 32-byte registers.
12. The vector processor of claim 1, further comprising an N-bit scalar register, wherein said N-bit scalar register temporarily holds one data element resulting from a first N-data element instruction and stores a data element resulting from a second N-data element instruction, wherein the first and second N-data element instructions combined correspond to a 2N-data element instruction.
13. The method of claim 9, further comprising temporarily holding one data element resulting from a first N-data element instruction and storing a data element resulting from a second N-data element instruction, wherein the first and second N-data element instructions combined correspond to a 2N-data element instruction.
1. Field of the Invention
This invention relates generally to data processors, and more particularly to improved architecture of data processors for reducing costs, size, and code density.
2. Description of Related Art
Microprocessors are designed to handle specific data widths. For example, a vector processor designed for parallel processing of 32 8-bit data elements uses 256-bit wide vector registers and execution units having 32-byte data paths. Vector processor instructions may specify a location of any of 32 elements within a vector register and a type of operation to be performed on the specified elements. Because the register sizes, execution unit architecture, and instruction syntax are adapted to operate on vectors of a specific size, such architectures are generally unable to accommodate larger size data widths.
Therefore, as newer microprocessors are designed for larger data widths to increase processing power, smaller data width architectures are unable to support these larger data operations. Consequently, the new designs provide larger registers and new instructions to specify data element locations and operation types. For example, 512-bit wide registers and instructions capable of specifying up to 64 element locations are needed to process 64 bytes of data. In order to process larger data widths, the size and cost of the microprocessor increases because of the need to increase chip size and to develop and manufacture new vector processor circuits.
Minimizing costs and chip area are important goals in microprocessor design. Therefore, a vector processor capable of processing larger data widths without a proportional increase in chip size, cost, and code length is desired. Specifically, an vector processor capable of emulating larger data width operations with existing architecture designed for smaller data width operations is desired.
A vector processor architecture permits emulation of double-width operations that manipulate vectors twice as wide as the vector processor's data path. For example, a 2N-byte microprocessor operation is emulated using two N-byte operations in an N-byte wide vector processor architecture. An exemplary embodiment of the invention uses a 32-byte vector processor to perform or emulate 64-byte operations.
Architecture for a 32-byte vector processor of the exemplary embodiment implements a set of instructions that read, modify and write vector data registers, and includes an instruction fetch unit, an instruction decoder, a state machine emulator (including an instruction issuer) to copy and modify 32-byte instructions, a register file containing 32-byte (256-bit) general purpose vector registers capable of holding multiple data elements of various data types and 32-bit general purpose scalar registers, an execution unit, two 512-bit double precision accumulator registers, and 32-bit special purpose scalar registers. Each 32-byte register can be paired with a second 32-byte register to act as one 64-byte register. Similarly, the two double-precision 64-byte accumulator registers can combine as one double-precision 128-byte accumulator. Furthermore, each 32-bit special purpose register that uses one bit to specify a byte or element position in a 32-byte vector register can be paired with another 32-bit special purpose register to specify data element locations 0 to 63.
A 64-byte operation can be then implemented by executing two sequential 32-byte operations. A mode bit indicates to the 32-byte vector processor whether a 32-byte operation or a 64-byte operation is to be performed. If 64-byte mode is selected, an emulator modifies the 32-byte instruction from a fetch unit and instruction decoder into two 32-byte instructions, and then sequentially transfers each 32-byte instruction to a register file and execution unit for processing. If 32-byte mode is selected, the emulator does not modify the instruction.
Most instructions are independent of data width and are not modified. However, instructions that specify element location and/or operate on elements within a vector register can be defined or modified for 64-byte emulation. Instructions that specify element location require six bits to designate element locations 0 through 63, while only five bits are needed to specify locations 0 through 31 for 32-byte operation. Consequently, an extra sixth bit, unused for 32-byte operations, is used in the instruction field to specify up to 64 elements. 64-byte instructions which are symmetrical about the vector middle can b split into two 32-byte instructions, where the second 32-byte instruction includes an appended bit to indicate operation on the second 32-bytes of data. Other 64-byte instructions that operate on adjacent elements are defined to operate on odd/even and even/odd pairs so that the first 32-byte instruction is executed on data in the first 32-byte register (bytes 0-31). The second 32-byte instruction then operates on even/odd and odd/even data pairs in the second32-byte register (bytes 32-63) to provide a 64-byte result. Still other 64-byte instructions shift elements in and out of registers. These instructions use a scalar register twice, once to hold the temporary result of a first 32-byte shift and second to hold the final result of a second 32-byte shift, to emulate a 64-byte operation. Other instructions which load or store data to registers require that the effective address of the second 32-byte instruction be adjusted by 32 bytes.
Therefore, 64-byte operations can be emulated using two sequential 32-byte operations and a 32-byte architecture, resulting in reduced chip size, costs, and code length.
FIG. 1 is a block diagram of a vector processor of the present invention;
FIG. 2 is a diagram of contents of a register file of FIG. 1;
FIG. 3 is a diagram of various instruction formats for the vector processor;
FIG. 4A is a diagram of a 64-byte shuffle operation;
FIG. 4B is a diagram of a 64-byte shuffle operation emulated with 32-byte shuffle operations;
FIG. 5 is a diagram of a 64-byte shift right operation emulated with 32-byte shift right operations;
FIG. 6 is a diagram of a 64-byte operation to add adjacent elements emulated with 32-byte operations;
FIG. 7 is a diagram of a 64-byte operation to compare and exchange elements emulated with 32-byte operations.
Use of the same reference symbols in different figures indicates similar or identical items.
In an exemplary embodiment of the present invention, a vector processor architecture permits emulation of an instruction set having 64-byte wide operations with 32-byte wide operations and data paths, thereby allowing 64-byte wide procedures to run on smaller and less costly existing 32-byte wide architectures. However, the description of the 32-byte vector processor is not meant to be limiting, but merely to illustrate the principles of the present invention. Similar principles can be applied to emulate 2N-byte wide (or any double width) operations with N-byte (or other single width) architectures.
FIG. 1 shows the primary functional blocks of the exemplary embodiment of a scalable width vector processor 100. Vector processor 100 includes an instruction fetch unit (IFU) 110, an instruction decoder 120, an emulator state machine 130 (which includes an instruction issuer (not shown)), a register file 140, an execution data path 150, and an accumulator 160. Co-owned U.S. app. Ser. No. 08/699,597, entitled "SINGLE-INSTRUCTION-MULTIPLE-DATA PROCESSING IN A MULTIMEDIA SIGNAL PROCESSOR", describes an exemplary vector processor without emulator state machine 130 and is incorporated by reference herein in its entirety.
In FIG. 1, IFU 110 fetches instructions from an instruction memory (not shown), which are then decoded in instruction decoder 120. In general, instructions indicate source and destination registers, an operation type, and a data type. Depending on a mode bit VEC64, emulator 130 then either passes the instructions from decoder 120 to register file 140 and execution unit 150 for execution or modifies the instructions. If 32-byte mode is selected, the unmodified instruction selects the desired register and elements in register file 140. Execution unit 150 executes logic/arithmetic operations on the data, which can then be stored back into register file 140 or stored in a double-precision accumulator 160 for additional processing.
However, if a 64-byte mode is selected, emulator 130 creates a 64-byte instruction with two 32-byte instructions and modifies the 32-byte instructions, if necessary, to select and operate on data from a first and second set of 32-byte registers in register file 140. An instruction issuer in emulator 130 issues the first 32-byte instruction to register file 140 and execution unit 150 for processing the first 32-bytes of data. Sequentially, the issuer issues the second 32-byte instruction into the instruction pipeline, which allows the second 32-bytes of data to be processed immediately after the first 32-bytes of data. A suitable instruction issuer for the exemplary vector processor is described in co-owned U.S. app. No. UNKNOWN, entitled "INSTRUCTION SCHEDULING USING SINGLE-CYCLE MICRO-INSTRUCTIONS", attorney docket No. M-4678, filed on Jan. 28, 1997, and is incorporated by reference herein in its entirety. After execution unit 150 processes the first 32-bytes of data, the result is transferred back to the first set of registers or an accumulator 160. Similarly, the result of the second 32-bytes of data is transferred back to the second set of registers or to accumulator 160. Consequently, a 64-byte operation is emulated with two sequential 32-byte operations.
The registers of vector processor 100 in the exemplary embodiment for 32-byte operations include 32 32-bit scalar registers, 64 256-bit general purpose vector registers, 33 32-bit special purpose registers, and two double-size (512-bit) accumulator registers. The 33 special purpose registers cannot be loaded directly from memory or stored directly to memory. Sixteen special purpose registers, referred to as RASR0 to RASR15, form an internal return address stack and are used by the subroutine call and return instructions. The other seventeen 32-bit special purpose registers are shown in Table A.1 in Part A of the section at the end of the specification entitled "Additional Vector Processor Information".
FIG. 2 shows contents of register file 140 consisting of 32 32-bit scalar registers (SR0 to SR31) and 64 256-bit vector registers. Scalar registers are 32 bits wide and can contain one data element of any one of the defined sizes (8-bit, 16-bit or 32-bit). The 8-bit and 16-bit data types are stored in the least significant bits of the scalar registers, with the most significant bits having undefined values. The scalar registers are identified by 5-bit register numbers ranging from 0 to 31.
The 256-bit vector registers support multiple data types as well as multiple elements, as shown below.
______________________________________ Element Total NumberData Length Max Number of BitsType (bits) of Elements Used______________________________________Byte 8 32 256Halfword 16 16 256Word 32 8 256______________________________________
The 64 vector registers are organized into 2 banks, each with 32 registers. BankO contains the first 32 registers (VR0 0 to VR0 31) and bank1 contains the second 32 registers (VR1 0 to VR1 31). In 32-byte operations, the two banks are used in a manner where one bank is set as the current bank and the other is set as the alternate bank. All vector instructions use the registers in the current bank by default, except the load/store and register move instructions which can access vector registers in the alternate bank. The vector registers can be identified by a one-bit bank number (0 or 1) and a 5-bit vector register number ranging from 0 to 31. The set of vector instructions for the exemplary embodiment are given in Table B.1 in Part B of the "Additional Vector Processor Information"section. The CBANK bit in the special purpose Vector Control and Status Register (VCSR) is used to set bank0 or bank1 to be the current bank, with the other bank becoming the alternate bank. Table A.2 in Part A of the "Additional Vector Processor Information" section shows specific bit functions within VSCR.
A pair of 32-byte vector registers having the same register number can be combined to provide a double-size vector registers of 512 bits (or 64 bytes) for 64-byte operation, i.e.,
VRi<511:0>=VR1 i<255:0>:VR0 i<255:0>,
where VR0 i and VR1 i denote the vector registers having register number VRi in bank1 and in bank0, respectively. In equivalent byte or element notation,
VRi[63:0]=VR1 i[31:0]:VR0 i[31:0].
The double-size vector registers are referenced as VR0 through VR31. Thus, the two 32-byte registers corresponding to bank0 and bank1 can be addressed as one 64-byte register. The VEC64 bit in control register VCSR identifies whether the vector processor operates on 32-byte or 64-byte data widths. Setting bit VEC64 to 1 in the status register places the vector processor in mode VEC64 where double-size (512-bit) is the default size of the vector registers. In the VEC64 mode, there are no current and alternate banks, and a vector register number denotes a corresponding pair of 256-bit vector registers from the two banks.
Some special purpose registers have bits that correspond to specific data element locations in a vector register. In these cases, each bit in a 32-bit special register is associated with one element. Because a 64-byte (512-bit) vector register can have at most 64 8-bit elements, a second 32-bit special purpose register is needed to specify the additional 32 elements for 64-byte operations. Three types of special purpose registers require a second register. Theses are identified in Table A.1 as global mask registers VGMR0 and VGMR1, move mask registers VMMR0 and VMMR1, and overflow registers VOR0 and VOR1. Registers VGMR0 and VGMR1 can be set by comparing a vector register with a vector or scalar register or with an immediate value using the VCMPV instruction. This instruction properly sets the mask according to the specified data size. The scalar registers are limited to only one data element, and scalar operations (i.e., operations where the destination registers are scalar) are not affected by the element mask.
To provide flexibility in vector programming, most vector instructions use an element mask to operate only on the selected elements within a vector. The Vector Global Mask Registers VGMR0 and VGMR1 identify the elements that are modified in the destination register and the vector accumulator by the vector instructions. Vector Global Mask Register VGMR0 indicates the elements of the destination vector register VRd that are to be affected in the VEC32 mode and the elements within VRd<255:0> in the VEC64 mode. Each bit in VGMR0 controls the update of 8 bits in the vector destination register. Specifically, register VGMR0<i> controls the update of VRd<8i+7:8i> in the VEC32 mode and of VR0 d<8i+7:8i> in the VEC64 mode, where <i> is the ith element in the register. Note that VR0 d denotes the destination register in bank0 in the VEC64 mode and that VRd refers to the destination register in the current bank, which can either be the bank 0 or bank 1 in the VEC32 mode. Vector global mask register VGMR0 is used in execution of all instructions except the VCMOVM instruction.
Vector Global Mask Register VGMR1 indicates the elements within VRd<511:256> that are affected in the VEC64 mode. Each bit in register VGMR1 controls the update of 8 bits in the vector destination register in bank1. Specifically, VGMR1<i> controls the update of VR1 d<8i+7:8i>. Register VGMR1 is not used in the VEC32 mode but, in VEC64 mode, affects execution in all instructions except the VCMOVM instruction.
For 8-bit data type operations, each of the 32 bits in VGMR0 (or VGMR1) identifies an element to be operated on. Setting bit VGMR0<i> indicates that the element i of the vector register is to be affected, i being 0 to 31. For 16-bit data type operations, each pair of the 32 bits in VGMR0 (or VGMR1) identifies an element to be operated on. Setting bits VGMR0<2i:2i+1> indicates that element i is to be affected, i being 0 to 15. If only one bit of a pair in VGMR0 is set for 16-bit data type operation, only the bits in the corresponding byte are modified. For 32-bit data type operations, each set of four bits in VGMR0 (or VGMR1) identifies an element to be operated on. Setting bits VGMR0<4i:4i+3> indicates that the element i is to be affected, i being 0 to 7. If not all bits in a set of four in VGMR0 are set for a 32-bit data type operation, only the bits in the corresponding byte are modified.
Vector Overflow Register VOR0 indicates the elements in the VEC32 mode and the elements within VR<255:0> in the VEC64 mode that contains overflow results after a vector arithmetic operation. This register is not modified by a scalar arithmetic operation. Bit VOR0<i> being set indicates that the ith element of the 8-bit data type, the (i div 2)th element of the 16-bit data type, or the (i idiv4)th element of the 32-bit data type operation contains an overflow result, where idiv is integer division. For instance, bit 1 and bit 3 would be set to indicate overflow of the first 16-bit and 32-bit element (element in location 0), respectively. This mapping of bits in VOR0 is different from the mapping of the bits in VGMR0 or VGMR1.
Vector Overflow Register VOR1 indicates the elements within VR<511:256> in the VEC64 mode that contain overflow results after a vector arithmetic operation. Register VOR1 is not used in the VEC32 mode nor modified by a scalar arithmetic operation. Bit VOR1<i> being set indicates that the ith element of the 8-bit data type, the (i div 2)th element of the 16-bit data type, or the (i idiv 4)th element of the 32-bit data type operation contains an overflow result. For instance, bit 1 and bit 3 would be set to indicate overflow of the first 16-bit and first 32-bit element, respectively in VR<511:256>. The mapping of bits in VOR1 is different from the mapping of the bits in VGMR0 or VGMR1.
The VCMOVM instruction uses Vector Move Mask Register VMMR0 at all times as well as when VCSR<SMM>=1 for all instructions. Register VMMR0 indicates the elements of the destination vector register that are to be affected in the VEC32 mode and the elements within VR<255:0> in the VEC64 mode. Each bit in VMMR0 controls the update of 8 bits in the vector destination register. Specifically, VMMR0<i> controls the update of VRd<8i+7:8i> in the VEC32 mode and of VR0 d<8i+7:8i> in the VEC64 mode. VR0 d denotes the destination register in bank0 in the VEC64 mode and VRd refers to the destination register in the current bank, which can either be bank0 or bank1 in the VEC32 mode.
Vector Move Mask Register VMMR1 is used by the VCMOVM instruction at all times as well as when VCSR<SMM>=1 for all instructions. Register VMMR1 indicates the elements within VR<511:256> that are to be affected in the VEC64 mode. Each bit in VMMR1 controls the update of 8 bits in the vector destination register in bank1. Specifically, VGMR1<i> controls the update of VR1d<8i+7:8i>. Register VGMR1 is not used in the VEC32 mode.
Referring back to FIG. 1, accumulator 160, containing two 512-bit registers, can be configured or accessed in similar manner as the vector registers. The vector accumulator registers provide storage for intermediate results that have higher precision than the results in destination registers. The vector accumulator registers include four 256-bit registers, designated VAC1H, VAC1L, VAC0H and VAC0L. VAC0H and VAC0L are combined to yield
and is used by default in 32-byte mode. VAC1H and VAC1L are combined in the VEC64 or 64-byte mode to yield
for emulation of 64-byte vector operations. Thus, register VAC0<511:0> and VAC1<511:0> are combined to create a 1024-bit double precision register
VAC1 is only used for the 64-byte mode. Even when bank1 is set to be the current bank in VEC32 mode, VAC0 is used.
To produce an extended precision result with the same number of elements as in the source vector registers, extended precision elements are saved across a pair of registers, as shown below, with i being the ith element and <n> indicating the data size.
______________________________________Element LogicalSize View VAC Format______________________________________ 8-bit VAC[i] VAC0H[i]<7:0>: VAC0L[i]<7:0> for <15:0> i = 0 . . . 31 and VAC1H[i - 32]<7:0>: VAC1L[i - 32]<7:0> for i = 32 . . . 6316-bit VAC[i] VAC0H[i]<15:0>: VAC0L[i]<15:0> for <31:0> i = 0 . . . 15 and VAC1H[i - 16]<15:0>: VAC1L[i - 16] for i = 16 . . . 3132-bit VAC[i] VAC0H[i]<31:0>: VAC0L[i]<31:0> for <63:0> i = 0 . . . 7 and VAC1H[i - 8]<31:0>: VAC1L[i - 8]<31:0> for i - 8 . . . 15______________________________________
In addition to modifying vector processor registers, certain instructions are modified or defined so that a 32-byte vector processor can also operate on 64-byte data widths. As mentioned earlier, Table B.1 lists instruction set for the vector processor in the exemplary embodiment. For vector processor 100, each instruction is 32 bits long and has one of the nine formats shown in FIG. 3, labeled REAR, REAI, RRRM5, RRR, RI, CT, RRRM9, RRRM9+, and RRRM9++. Descriptions of the nine formats and the fields within the format are provided in Part C of the "Additional Vector Processor Information" section. Part D of the section illustrates the instruction encoding in the various formats for the instructions in Table B.1.
Vector processor instructions that specify operands independent of vector processor widths do not need to be modified for 64-byte operations. These instructions specify data type (8-bit, 16-bit or 32-bit) and operations which are performed on elements from the same location of two vector registers or operands. Specific locations do not need to be specified, and therefore emulator 130 simply makes a copy of the 32-byte instruction for operation on the second 32-bytes of data. Most of the instructions in Table B.1 for the exemplary embodiment of the present invention are specified independent of the vector register width, and thus do not need to be modified by emulator 130 of FIG. 1. However, some instructions require specifying element locations and/or require operations on adjacent elements. In these cases, emulator 130 modifies the instruction for 64-byte operation.
Instructions that move one element from one position to another position without the need to designate a specific position such that the instructions are symmetric with respect to upper and lower halves of a double-width vector register are simply split into two single-width operations which emulate a double-width operation. In the exemplary embodiment, Inter-element Move Class instructions, shuffle (VSHFL) and unshuffle (VUNSHFL) fall into this category. FIG. 4A illustrates the shuffle operation for a 64-byte data width, with source registers VRb 400 and VRa 410 and destination registers VRd 420 and VRc 430. VSHFL places the first element of register VRb 400 into the first location of register VRd 420, the first element of register VRa 410 into the second location of VRd 420 as illustrated by the arrows in FIG. 4A. Assuming elements are bytes, the first 32 bytes of VRb 400 and VRa 410 are alternately placed in 64-byte wide VRd 420. The remaining 32 bytes of VRb 400 and VRa 410 are then alternately places in 64-byte wide register VRc 430.
FIG. 4B shows the 64-byte shuffle operation emulated with two 32-byte shuffle operations. Because of the symmetry of defined shuffle operation, a 32-byte shuffle operation is first executed to shuffle the first 16-bytes of VR0 b 440 and VR0 a 450 into 32-byte register VR0 d 460 and the second 16-bytes of VR0 b 440 and VR0 a 450 into 32-byte register VR1 d 465. The results are then stored back in the register file or in an accumulator. A second 32-byte shuffle operation is then executed to shuffle the third 16-bytes of VR1 b 470 and VR1 a 480 into 32-byte register VR0 c 490 and the fourth 16-bytes of VR1 b 470 and VR1 a 480 into 32-byte register VR1 c 495, which are then stored, resulting in a 64-byte shuffle operation. In assembler syntax notation.
64-byte VSHFL VRc, VRd, VRa, VRb is emulated by
32-byte VSHFL VR1 d, VR0 d, VR0 a, VR0 b
32-byte VSHFL VR1 c, VR0 c, VR1 a, VR1 b,
where a and b denote source registers and c and d denote destination registers. The second shuffle instruction can be pipelined such that the second shuffle operation is performed while the result of the first shuffle operation is being stored. Furthermore, because the 64-byte shuffle operation is symmetric, as shown in FIG. 4A, the order of execution for the two 32-byte shuffle instructions has no effect. The 64-byte operation is independent between 32-byte registers, i.e., the result of a 64-byte shuffle does not depend on the relationship between elements at locations 31 and 32 of a 64-byte register, and thus can be emulated with two 32-byte operations. The unshuffle instruction undoes the shuffle operation and is likewise symmetric.
Some instructions identify specific locations of elements in a vector register. For 32-byte operation, a 5-bit field is needed to specify any of 32 element locations. For 64-byte operation, a sixth bit is needed in order to specify any of 64 element locations in the vector register. In the exemplary embodiment of the invention, the Register Move Class instructions, insert (VINSRT) and extract (VEXTRT) require specific element locations. For the insert instruction, the element in scalar register SRa is inserted into vector register VRd at a location specified by scalar register SRb or immediate field IMM. Similarly for the extract instruction, an element from vector register VRa at a location specified by scalar register SRb or IMM field is extracted and stored into scalar register SRd. The 32-bit scalar registers can easily accommodate 5-bit or 6-bit indices to identify data elements. However, in the IMM field of an instruction, the additional bit can be located within the instruction at unused reserved bit locations. In 64-byte mode, the element location index ranges from 0 to 63. For the VINSRT operation, the destination vector register VRd is VR0 d if the index is from 0 to 31. If the index is from 32 to 63, the index is adjusted down by 32 and the destination register is VR1 d. For the VEXTRT operation, the source vector register VRa is VR0 a if the index is from 0 to 31 and VR1 a if the index is from 32 to 63, with the index adjusted down by 32.
Some instructions shift all elements by one position to produce one scalar result (the element shifted out) and one vector result (the rest of the original elements plus an element shifted in from a scalar register). A 64-byte shift operation can be emulated by executing two 32-byte shift operations, with the destination scalar register used twice, once to hold the temporary result of the first 32-byte shift and then to hold the final result after the second 32-byte shift.
FIG. 5 illustrates the two-step emulation for Inter-element Move Class instruction, shift right (VESR) of the exemplary vector processor. In the first 32-byte shift operation, element or byte B in scalar register SRb 510 is shifted into element location 31 of vector register VR1 d 520, and the elements of vector register VR1 a 530 are shifted into the remaining locations of VR1 d 520 with element A32 in location 0 of VR1 a shifted into scalar register SRc 540. In the second 32-byte shift operation, the element A32 in SRc is shifted into element location 31 of vector register VR0 d 550, and the elements of vector register VR0 a 560 are shifted into the remaining locations of VR0 d 550 with element A0 in location 0 of VR0 a shifted into scalar register SRc 540 to complete a 64-byte shift operation. In assembler syntax notation,
64-byte VESR SRc, VRd, VRa, SRb is emulated as
32-byte VESR SRc, VR1 d, VR1 a, SRb
32-byte VESR SRc, VRc d, VR0 a, SRc.
A similar method is used to emulate a 64-byte shift left (VESL) operation using two 32-byte shift left operations.
Instructions that require an operation on two adjacent elements in a vector register can be equivalently defined to operate on a successive odd/even pair or eve/odd pair to emulate 64-byte operations with two 32-byte instructions. In the exemplary embodiment of the present invention, the following Inter-element Arithmetic Class instructions fall into this category: add two adjacent elements (VADDH); average two adjacent elements (VAVGH); and compare adjacent elements and move the maximum element into the even location and lesser element into the odd location (VMAXE).
FIG. 6 illustrates how adding adjacent elements from 64-byte data can be emulated with two 32-byte VADDH operations. In the first 32-byte VADDH operation, adjacent even and odd elements in vector register VR0 a 610 are added together and stored in the first 31 positions of vector register VR0 d 620. The last position in VR0 d is filled with the sum of the last element A31 (odd) of VR0 a and the first element A32 (even) of VR1 a 630. In the second 32-byte VADDH operation, adjacent even and odd elements in VR1 a 630 are added together and stored in the first 31 positions of vector register VR1 d 640. The last position of VR1 d is filed with the sum of the last element A63 (odd) of VR1 a 630 and the first element B0 (even) of register Rb 650, resulting in a 64-byte VADDH operation. (Register Rb can be either a vector register or a scalar register.) In assembler syntax notation,
64-byte VADDH, VRd, VRa, VRb (SRb) is emulated with
32-byte VADDH VR0 d, VR0 a, VR1 a
32-byte VADDH VR1 d, VR1 a, VRb (SRb).
The 64-byte VAVGH operation is emulated in the same way, where only the type of operation differs, i.e., averaging elements instead of adding elements.
FIG. 7 shows a 64-byte VMAXE operation emulated with two 32-byte VMAXE operations. In the first 32-byte VMAXE operation, sixteen even/odd data element pairs are compared in VR0 b 710. The greater of the two is stored in the even numbered location of VR0 d 720 and the lesser stored in the odd numbered location of VR0 d. In the second 32-byte VMAXE operation, the next sixteen even/odd data element pairs, in VR1 b 730, are compared, with the greater of the two stored in the even numbered location of VR1 d 740 and the lesser in the odd numbered location. VR1 d 740 and VR0 d 720 are combined as discussed previously to provide the 64-byte result of a 64-byte VMAXE operation. In assembler syntax notation,
64-byte VMAXE VRd, VRb is emulated with
32-byte VMAXE VR1 d, VR1 b
32-byte VMAXE VR0 d, VR0 b.
Some instructions load and store contents of a vector register into another register. 64-byte instructions of this type can be emulated with 32-byte architectures by executing two 32-byte instructions, where the effective address (EA) for the second 32-byte instruction is adjusted to load or store elements at byte locations 32 through 63. Thus, if EA+i (i=0 to 31) is the effective address for the first 32-byte operation, the effective address for the second 32-byte operation is EA=EA+32+i (i=0 to 31) to emulate a 64-byte operation. Therefore, emulator 130 adjusts the effective address for the second 32-byte load and store operations by 32.
Other types of vector processor instructions can be modified similarly to allow emulation of 2N-byte wide instructions with two N-byte wide instructions.
Returning to FIG. 1, for a 64-byte operation, the instruction issuer within emulator 130 holds two 32-byte instructions in a pipeline. The first 32-byte instruction initiates a write stage to access the data from the desired registers in bank0 of register file 140. Execution unit 150 then operates on the data and stores the result in accumulator 160 or back into bank0 of register file 140. While the first 32-bytes are being processed, instruction issuer initiates the write stage for the second 32-byte instruction to access data in desired registers in bank1. The data is processed by execution unit 150, and the result is stored in accumulator 160 or back into bank1 of register file 140. Thus, a 64-byte operation is emulated with two 32-byte operations using 32-byte architecture. Because 32-byte instructions and architecture are used for 64-byte operations, the size and coasts of the chip, as well as the code length or density, are reduced when compared to vector processors utilizing 64-byte instructions and architecture.
The following section provides additional details regarding the vector processor, such as register types and formats and instruction sets, fields, and formats.
Part A
There are 33 special-purpose registers that cannot be loaded directly from memory or stored directly to memory. Sixteen special-purpose registers, referred to as RASR0 to RASR15, form an internal return address stack for subroutine call and return instructions. Seventeen more 32-bit special-purpose registers are shown in Table A.1.
TABLE A.1______________________________________Special-purpose registersNumber Mnemonic Description______________________________________SP0 VCSR Vector Control and Status RegisterSP1 VPC Vector Program CounterSP2 VEPC Vector Exception Program CounterSP3 VISRC Vector Interrupt Source RegisterSP4 VIINS Vector Interrupt Instruction RegisterSP5 VCR1 Vector Count Register 1SP6 VCR2 Vector Count Register 2SP7 VCR3 Vector Count Register 3SP8 VGMR0 Vector Global Mask Register 0SP9 VGMR1 Vector Global Mask Register 1SP10 VOR0 Vector Overflow Register 0SP11 VOR1 Vector Overflow Register 1SP12 VIABR Vector Instruction Address Breakpoint Reg.SP13 VDABR Vector Data Address Breakpoint RegisterSP14 VMMR0 Vector Move Mask Register 0SP15 VMMR1 Vector Move Mask Register 1SP16 VASYNC Vector & ARM7 Synchronization Register______________________________________
Vector control and status register VCSR definition is shown in Table A.2.
TABLE A.2______________________________________VCSR definitionBit Mnemonic Description______________________________________31:18reserved17:13VSP<4:0> Return address stack pointer. VSP is used by the jump to subroutine and return from subroutine instructions to keep track of the top of the internal return address stack. There are only 16 entries in the return address stack - VSP<4> is used for detecting stack overflow condition.12 SO The summary overflow status flag. This bit is set when an arithmetic operation results in overflow. This bit is sticky - once set, it remains set until cleared by writing 0 to this bit.11 GT The greater than status flag. This bit gets set by the VSUBS instruction when SRa > SRb.10 EQ The equal status flag. This bit gets set by the VSUBS instruction when SRa = SRb. 9 LT The less than status flag. This bit gets set by the VSUBS instruction when SRa < SRb. 8 SMM Select Move Mask. When this bit is set, the VMMR0/1 pair becomes the element mask for the arithmetic operations. 7 CEM Complement Element Mask. When this bit is set, the element mask is defined to be one's complement of the VGMR0/1 or VMMR0/1, whichever is configured to be the element mask for arithmetic operation. This bit does not change the contents of the VGMR0/1 or VMMR0/1 - it only changes the use of these registers. The SMM:CEM encodings specify: 00 - use VGMR0/1 as the element mask for all but VCMOVM 01 - use -VGMR0/1 as the element mask for all but VCMOVM 10 - use VMMR0/1 as the element mask for all but VCMOVM 11 - use -VMMR0/1 as the element mask for all but VCMOVM 6 OED Overflow Exception Disable. When this bit is set, processor 120 continues with execution upon detecting an overflow condition. 5 ISAT Integer saturation mode. The combination of OED:ISAT bits specify: 00 - no saturation, report when overflow exception occurs x1 - saturation, cannot cause overflow 10 - no saturation, do not report when overflow exception occurs4:3 RMODE Rounding mode for IEEE 754 floating point operations. 00 round toward -infinity 01 round toward zero 10 round toward nearest 11 round toward +infinity 2 FSAT Floating point saturation (fast IEEE mode) mode bit 1 CBANK Current Bank bit. When set indicates that bank 1 is the current bank. When clear indicates that bank 0 is the current bank. CBANK is ignored when the VEC64 bit is set. 0 VEC64 64 byte vector mode bit. When set specifies that the vector registers and accumulators are to have 512 bits. The default mode specifies 32 of byte size, referred to as the VEC32______________________________________ mode.
Part B
The following describes a subset of an instruction set for an exemplary embodiment of a vector processor in accordance with an embodiment of the invention. Further description of the instruction set for the exemplary embodiment of the vector processor can be found in co-owned U.S. patent app. Ser. No. 08/699,597, entitled "Single-Instruction-Multiple-Data Processing in a Multimedia Signal Processor", which is incorporated by reference above.
The control flow class includes instructions that control the program flow. It has the branch and ARM7 interface instructions.
TABLE B.1______________________________________Control flow classMnemonic Description______________________________________VCBR Branch if condition is trueVCBRI Branch indirect if condition is trueVD1CBR Decrement VCR1 and branch if condition is trueVD2CBR Decrement VCR2 and branch if condition is trueVD3CBR Decrement VCR3 and branch if condition is trueVCJSR Jump to subroutine if condition is trueVCJSRI Jump indirect to subroutine if condition is trueVCRSR Return from subroutine if condition is trueVCINT If condition is true, halt execution and interrupt ARM7, if enabledVCJOIN If condition is true, halt execution and interrupt ARM7, if enabledVCCS Jump to context switch subroutine if VIMSK<cse> is trueVCBARR Stall the instruction and all later instructions as long as condition holdsVCHGCR Changes operation mode of the vector processor______________________________________
The logical class includes the bit-wise logical instructions, supporting the Boolean data types and requiring the data type. Table B.2 lists the logical class instructions.
TABLE B.2______________________________________Logic InstructionsMnemonic Description______________________________________VNOT Logically NOT - -BVAND Logically AND Ra and Rb - (A & B)VCAND Logically AND complement of Ra and Rb - (-A & B)VANDC Logically AND Ra and complement Rb - (A & -B)VNAND Logically NAND each bit of each element in Ra with corresponding bit of Rb - -(A & B)VOR Logically OR each bit of each element in Ra with corresponding bit of Rb - (A ' B)VCOR Logically OR complement of Ra and Rb - (-A ' B)VORC Logically OR each bit of each element in Ra with complement of corresponding bit in Rb - (A ' -B)VNOR Logically NOR each bit of each element in Ra with corresponding bit in Rb - -(A a B)VXOR Logically Exclusive OR Ra with Rb - (A B)VXNOR Logically Exclusive NOR Ra with Rb - -(A B)______________________________________
The shift and rotate class includes instructions that shift and rotate the bits within each element. The shift/rotate class instructions operate on the 8-bit, 16-bit and 32-bit integer data types and require the data type. Table B.3 lists the shift/rotate class instructions.
TABLE B.3______________________________________Shift & Rotate classMnemonic Description______________________________________VDIV2N Ra divided by 2nVLSL Each element of Ra is shifted left by amount in RbVLSR Each element of Ra is shifted right by amount in RbVROL Each element in Ra is rotated left by amount in RbVROR Each element in Ra is rotated right by amount in______________________________________ Rb
The arithmetic class includes the element-wise arithmetic instructions, i.e. the result of the ith element is computed from the ith elements of the sources. The instructions are listed in Table B.4, and in general, support eh 8-bit, 16-bit, 32-bit integer and 32-bit floating point data types.
TABLE B.4______________________________________Arithmetic ClassMnemonic Description______________________________________VASR Each data element of Ra is right shifted by amount given in LSB of RbVADD Add Ra and RbVAVG Average Ra and RbVSUB Subtract Rb from RaVASUB Absolute of Rb subtracted from RaVMUL Multiply each element of Ra with each element of Rb for double precision resultVMULA Multiply each element of Ra and Rb and write result to accumulatorVMULAF Multiply each element of Ra and Rb, left shift result one bit and write accumulatorVMULF Multiply each element of Ra and Rb, left shift result one bit and store upper half in Rd + 1 and lower half in RdVMULFR Multiply each element of Ra and Rb, left shift result one bit and round upper halfVMULL Multiply each element of Ra and Rb and store lower portion in RdVMAD Multiply each element of Ra and Rb and add to each element of RcVMADL Multiply each element of Ra and Rb, add to each element of Rc, and store lower portionVADAC Add each element of Ra and Rb with elements in accumulatorVADACL Add each element of Ra and Rb with elements in accumulator, store result in accumulator, and store lower portion in RdVMAC Multiply each element of Ra and Rb and add with elements in accumulatorVMACF Multiply each element of Ra and Rb, left shift result one bit, add result to elements in accumulatorVMACL Multiply each element of Ra and Rb, add with elements of accumulator, store lower half in RdVMAS Multiply each element of Ra and Rb and subtract from elements in accumulatorVMASF Multiply each element of Ra and Rb, left shift result one bit, subtract result from elements in accumulatorVMASL Multiply each element of Ra and Rb, subtract result from accumulator, and store lower half in RdVSATU Each element of Ra is checked against its corresponding upper limit in Rb, and set to upper limit if greater than upper limitVSATL Each element of Ra is checked against its corresponding lower limit in Rb, and set to lower limit if less than lower limitVSUBS Subtract SRb from SRa, store in SRd, and set VFLAG bits in VCSRVCMPV Compare elements in Ra and Rb, and set VGMR or VMMR masks accordinglyVDIVI Perform the initial step of a non-restoring signed integer divisionVDIVS Perform one iterative step of a non-restoring signed divisionVASL Left shift each element of Ra by amount in RbVASA Left or right shift each element in accumulator by one______________________________________ bit
Table B.5 list the MPEG instructions, which are instructions that are optimized for multimedia applications. The MPEG instructions support the 8-bit, 16-bit, 32-bit integer data types and requires data type.
TABLE B.5______________________________________MPEG classMnemonic Description______________________________________VAAS3 Add Ra to Rb and add result with sign of RaVASS3 Add Ra to Rb and subtract sign of Ra with resultVEXTSGN2 Sign value (1, -1) of each element of Ra computed and stored in RdVEXTSGN3 Sign value (1, 0, -1) of each element of Ra computed and stored in RdVXORALL XOR LSB of each element of VRb and stored in LSB of SRd______________________________________
Table B.6 lists the data type conversion instructions for converting elements from one data type to another. Each data type conversion instruction supports specific data types. The architecture does not support more than one data type in a register.
TABLE B.6______________________________________Data Type Conversion ClassMnemonic Description______________________________________VCVTIF Convert elements in Rb from int32 to floatVCVTFF Convert elements in Rb from float to fixed pointVROUND Round floating point elements in Rb to int32VCNTLZ Count leading zeroes for each element in Rb______________________________________
Table B.7 lists the inter-element arithmetic class of instructions, which take two elements from different positions of the vectors to produce arithmetic results. The inter-element arithmetic class support the 8-bit, 16-bit, 32-bit integer and 32-bit floating point data types.
TABLE B.7______________________________________Inter-element Arithmetic ClassMnemonic Description______________________________________VADDH Add every two adjacent elements in RaVAVGH Average every two adjacent elements in RaVADDQ Add every two adjacent elements in Ra and RbVAVGQ Average every two adjacent elements in Ra and Rb (not supported by VEC64)VMAXE Compare each even/odd element of Rb and store greater in even location and lesser in odd location of Rd______________________________________
Table B.8 lists the inter-element move class instructions, which take two elements from different positions of the vectors to rearrange the elements. The inter-element move class of instructions support the 8-bit, 16-bit, 32-bit integer and 32-bit floating point data types.
TABLE B.8______________________________________Inter-element Move ClassMnemonic Description______________________________________VESL Shift left elements in Ra by oneVESR Shift right elements in Ra by oneVSHFL Shuffle contents of Ra with RbVSHFLM Shuffle contents of Ra with Rb and store upper half in RdVSHFLL Shuffle contents of Ra with Rb and store lower half in RdVUNSHFL Unshuffle contents from Ra and RbVUNSHFLH Unshuffle contents from Ra and Rb and store upper half in RdVUNSHFLL Unshuffle contents from Ra and Rb and store lower half in Rd______________________________________
Table B.9 lists the load and store class of instructions, which load or store registers. The load and store class supports the 8-bit, 16-bit, 32-bit integer and 32-bit floating point data types.
TABLE B.9______________________________________Load & store classMnemonic Description______________________________________VL Load a vector register into the current or alternate bank or a scalar registerVLD Load two vector registers into the current or alternate bank or two scalar registersVLQ Load four vector registers into the current or alternative bank or four scalar registersVLCB Load a vector or scalar register from the circular bufferVLR Load a vector register in reverse element orderVLWS Load 32 bytes from memory to Rd using SRbVST Store a vector or scalar registerVSTD Store two vector registers from the current or alternate bank or two scalar registersVSTQ Store four vector registers from the current or alternate bank or four scalar registersVSTCB Store a vector or scalar register from the circular bufferVSTR Store a vector register in reverse element orderVSTWS Store 32 bytes from memory to Rd using SRb______________________________________
Table B.10 lists the register move class instructions, which transfer between two registers. The register move class of instructions support the 8-bit, 16-bit, 32-bit integer and 32-bit floating point data types.
TABLE B.10______________________________________Register move classMnemonic Description______________________________________VLI Load an immediate value into a scalar or vector registerVMOV Move contents of Rb to Rd (not used for VEC64)VCMOV Move contents of Rb to Rd if Cond trueVCMOVM Move contents of Rb to Rd if Cond true with element maskVEXTRT Extract an element from Ra whose index is specified by Rb and store in RdVINSRT Insert an element from Ra into Rd at index specified by Rb______________________________________
Part C
Table C.1 provides descriptions of the various fields in the instruction formats of FIG. 3.
TABLE C.1______________________________________Instruction format fieldsFieldDescription______________________________________Opc OpcodeB Bank identifier for the Rn register. When set inVEC32 mode, Rn<4:0> denotes a vector register numberin the alternate bank. When set in VEC64 mode,denotes a full vector (64-byte) operation.D Destination/source register. When set, destinationregister is a scalar register; when clear, it is avector registerDB legal values for B:D encodings in VEC32 mode are:00 Rn is a vector register in current bank01 Rn is a scalar register in current bank10 Rn is a vector register in alternate bank11 undefinedThe legal values for B:D encodings in VEC64 mode are:00 Only 4, 8, 16 or 32 bytes of vector register Rn is used01 Rn is a scalar register10 All 64 bytes of vector register Rn is used11 undefinedTT Transfer Type indicates a specific load or storeoperation.C Cache off. Set to bypass data cache for loadA Address update. Set to update SRb with the effectiveaddress.Rn Destination/source register numberSRb Scalar base register numberSRi Scalar index register numberIMM Immediate offset, interpreted as 2's complement numberS Scalar Rb register. When set, indicates Rb<4:0> is ascalar register; when clear, it is a vector registerDS Data size. The encodings are:00 byte (used by int8 data type)01 byte9 (used by int9 data type)10 halfword (used by int16 data type)11 word (used by int32 or float data type)M Modifier for D:S bits.Rd Destination D register numberRa Source A register numberRb Source B register numberRc Source/destination C register numberF Float data type. When set, denotes floating pointdata type and requires DS to be 11Cond Branch condition:000 always001 less than010 equal011 less than or equal100 greater than101 not equal110 greater than or equal111 overflow______________________________________
The following description of instruction formats provides more details to some of the field designations.
The load and store instructions which use scalar registers when determining an effective address have the REAR format. REAR-format instructions have three operands identified by two register numbers SRb and SRi for scalar registers and by one register number Rn which may be a scalar or vector register depending on a bit D. A bank bit B either identifies a bank for register Rn or indicates whether vector register Rn is a double-size vector register if the default vector register size is double-size. An op-code field Opc identifies the operation performed on the operands, and a field TT indicates a transfer type as load or store. A typical REAR-format instruction is instruction VL which loads register Rn from an address determined by adding the contents of scalar registers SRb and SRi. If bit A is set, the calculated address is stored in scalar register SRb.
REAI-format instructions are the same as REAR instructions except that an 8-bit immediate value from field IMM is used in place of the contents of scalar register SRi. REAR and REAI formats do not have a data element size field.
The RRRM5 format is used mostly by the multimedia instructions, which include the shift, rotate, element shift, vector/scalar conversion, multimedia, data type conversion, inter-element, and register move classes, which have two source operands and one destination operand. These instructions have either three register operands or two register operands and a 5-bit immediate value. An encoding of fields D, S, and M as shown in xx determines whether the first source operand Ra is a scalar or vector register; whether the second source operand Rb/IM5 is a scalar register, a vector register, or a 5-bit immediate value; and whether the destination register Rd is a scalar or vector register.
The RRRR format is for instructions having four register operands. Register numbers Ra and Rb indicated source registers. Register number Rd indicates a destination register, and register number Rc indicates either a source or a destination register depending on field Opc. All of the operands are vector registers unless bit S is set to indicate register Rb is a scalar register. Field DS indicates the data element size for the vector registers. Field Opc selects the data type for 32-bit data elements.
An RI-format instruction is used only for the load immediate instruction. Field IMM contains an immediate value of up to 18 bits. Register number Rd indicates the destination register which is either a vector register in the current bank or a scalar register depending on bit D. Fields DS and F respectively indicate a data element size and type. For 32-bit integer data elements, the 18-bit immediate value is sign extended before being loaded into register Rd. For floating point data elements, bit 18, bits 17 to 10, and bits 9 to 0 respectively indicate the sign, exponent, and mantissa of a 32-bit floating point value.
The CT format is for flow control instructions and includes an op-code field Opc, a condition field Cond, and a 23-bit immediate value IMM. A branch is taken when a condition indicated by the condition field is true. Possible condition codes are "always", "less than", "equal", "less than or equal", "greater than", "not equal", "greater than or equal", and "overflow". Bits GT, EQ, LT, and SO in status and control register VCSR are used to evaluate the conditions.
The RRRM9 format is used mostly by the arithmetic and logical instructions, and provides for either three register operands or two register operands and a 9-bit immediate value. A combination of bit D, S, and M indicate which of operands are vector registers, scalar registers, or 9-bit immediate values. Field DS indicates a data element size. The RRRM9+ and RRRM9++ formats are special cases of the RRRM9 format and distinguished by opcode field Opc. The RRRM9+ format replaces a source register number Ra with a condition code Cond and an ID field. The RRRM9++ format replaces most significant bits of the immediate value with a condition code Cond and a bit K.
Part D
Table D.1 shows the opcode assignments for the REAR and REAI instruction formats.
TABLE D.1______________________________________REAR and REAI encodingOpc Opc<2:0>= Opc<2:0>= Opc<2:0>= Opc<2:0>=<4:3> 000 010 100 110______________________________________00 VL VLD VLQ VPFTCH01 VLR VLCB VLWS VCACHE10 VST VSTD VSTQ VWBACK11 VSTR VSTCB VSTWS______________________________________
Table D.2 shows the opcode assignments for the RRRM5 instruction format.
TABLE D.2______________________________________RRRM5 encodingOpc Opc<1:0>= Opc<1:0>= Opc<1:0>= Opc<1:0>=<4:2> 00 01 10 11______________________________________000 VLSR VLSL VROR VROL001 VASR VASL VDIV2N VDIV2N.f010 VCVTFF011100 VASS3 VAAS3 VCVTIF101 VADDH VAVGH VAVGQ110 VMAXE VAVG VROUND111______________________________________
Table D.3 shows the opcode assignments for the RRRR instruction format.
TABLE D.3______________________________________RRRR encodingOpc Opc<1:0>= Opc<1:0>= Opc<1:0>= Opc<1:0>=<4:2> 00 01 10 11______________________________________000 VSHFL VUNSHFL001 VESR VESL010 VMUL VMADL VMAD011 VADAC100 VSHFLH VUNSHFLH VSHFLL VUNSHFLL101 VCNTLZ VEXTSGN2 VEXTSGN3110 VMOV VASA VDIVI VDIVS111 VXORALL VCVTB9______________________________________
Table D.4 shows the opcode assignments for the CT instruction format.
TABLE D.4______________________________________CT encodingOpc Opc<1:0>= Opc<1:0>= Opc<1:0>= Opc<1:0>=<3:2> 00 10 10 11______________________________________00 VCBR VD1CBR VD2CBR VD3CBR01 VCJSR VCRSR VCJOIN VCINT10 VCBRI VCHGCR VCBARR11 VCJSRI VCCS______________________________________
Table D.5 shows the opcode assignments for the RRRM9 instruction format.
TABLE D.5______________________________________RRRM9 encodingOpc Opc<1:0>= Opc<1:0>= Opc<1:0>= Opc<1:0>=<5:2> 00 01 10 11______________________________________0000 VADD VMULA VADACL0001 VSUB VMULAF0010 VASUB VMACF VMACL0011 VSATU VSATL VMASF VMASL0100 VCMOV VCMOVM0101 VMULF VMULL VCMPV VSUBS0110 VAND VNOR VOR0111 VNAND VXNOR VXOR1000 VINSRT VEXTRT10011010 VMAC1011 VMAS11001101 VMULFR1110 VANDC VNOT VORC1111 VCAND VCOR______________________________________
Although the invention has been described with reference to particular embodiments, the description is only an example of the invention's application and should not be taken as a limitation. For example, specific embodiments disclosed execute two single-width instructions to emulate one instruction for double the data width. Alternatively, three or more single-width instructions may be used to emulate instructions for triple or wider the data widths. Various other adaptations and combinations of features of the embodiments disclosed are within the scope of the invention as defined by the following claims.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
John Cusack's been shedding his rom-com image, one movie at a time. Most recently, the actor stars in The Raven, a dark crime thriller.
In the movie, Cusack plays author Edgar Allen Poe, who is recruited to help authorities find a murderer who is using his stories to help commit his crimes. Soon, the tables are turned on Poe, and he's suspected as the killer. If the story isn't enthralling enough, the trailer will definitely make you want to see this.
It starts with a detective discussing a double murder. A young girl's body is discovered in a chimney, and her mother's head was found severed with a single razor.
Upon being summoned and hearing the murders, Poe responds: "You are referring to one of most stories - a work of fiction".
The detective tells the writer: "I'm afraid I am not…what cannot be disputed is that your imagination is the inspiration of a horrendous crime".
And that seems to be the general idea of the movie.
The Raven is directed by James McTeigue, who did V for Vendetta. So yeah, it's probably going to be pretty badass.
British actress Alice Eve also stars in the film as Emily, Poe's love interest and possible murder victim. Eve starred in She's Out of My League and Sex and the City 2. She also played Sophia on Entourage. So this is a step up for her, too.
The title of the flick is taken from one of Edgar Allen Poe's most famous works, also named The Raven. The poem centers around a man who becomes depressed after losing his lover. In the middle of the night, a raven visits him, making him go crazier by constantly repeating the word, "nevermore."
The movie is definitely a better platform for Cusack's talent. I'm a fan of the guy, but America's Sweethearts wasn't doing much for him. In another upcoming project, Cusack will play a serial killer. In The Frozen Ground, Cusack will work alongside Nicolas Cage and Vanessa Hudgens.
Cusack will play real-life serial killer Robert Hansen, while Cage will take on the role of a police officer. Hudgens, I'm guessing, will be the eye candy. If there is such a thing in serial killer movies. The three will start shooting on October 17 in Anchorage, Alaska.
The Raven is set to be released in March 9, 2012.

subset: commoncrawl


text:
Happy 40th birthday to BMW's M Division
Don your party hat, grab a kazoo and revel in the history of M cars
Posted: 18 May 2012
BMW 850 CSi
OK, so this doesn't technically have an M badge on it, but spiritually the 850 CSi's got the Motorsport division in its blood.
It took over from the M8 prototype - built as a Ferrari killer, but never actually manufactured - and used a tuned version of the 850i's engine. Capacity increased to 5.6 liters (and power to 375bhp), it got modified suspension, aero bumpers, wider wheels, a six-speed manual 'box and four-wheel steer. Obviously, production versions didn't benefit from the rather outlandish paintwork, here courtesy of David Hockney.


text:
To embed, copy and paste the code into your website or blog:
A discussion about the rights and procedures available to California Registered Nurses who are targeted for license revocation by California because of past license discipline in other states.
Firefox recommends the PDF Plugin for Mac OS X for viewing PDF documents in your browser.
We can also show you Legal Updates using the Google Viewer; however, you will need to be logged into Google Docs to view them.
Please choose one of the above to proceed!
LOADING PDF: If there are any problems, click here to download the file.
DISCLAIMER: Because of the generality of this update, the information provided herein may not be applicable in all situations and should not be acted upon without specific legal advice based on particular situations.
© License Advocates Law Group, LLP
Read fresh new writing on compliance, cybersecurity, Dodd-Frank, whistleblowers, social media, hiring & firing, patent reform, the NLRB, Obamacare, the SEC…
…or whatever matters the most to you. Follow authors, firms, and topics on JD Supra.
Create your news brief now - it's free and easy »
Practicing exclusively on behalf of California State occupational and professional licensees and...
View Profile »
See more »
Sign up for your custom alerts now, using LinkedIn ›
Back to Top
Copyright ©


text:
The human rights situation in Vietnam deteriorated significantly in 2013, worsening a trend evident for several years. The year was marked by a severe and intensifying crackdown on critics, including long prison terms for many peaceful activists whose "crime" was calling for political change.
The Communist Party of Vietnam (CPV) continued its one-party rule, in place since 1975. While it maintained its monopoly on state power, it faced growing public discontent with lack of basic freedoms. Denial of rights and endemic official corruption are widely seen as stifling Vietnam's political and economic progress. Political infighting and economic policy disagreements within the CPV about how to handle the crisis of legitimacy and economic stagnation created an opening for members of the public to offer their opinions, particularly through social media.
The year saw a significant expansion of critical commentary in digital and other media. Critics questioned official policies, exposed official corruption, protested land-grabs, defended religious freedom, and called for democratic alternatives to one-party rule. One remarkable effort was "Petition 72," originally signed by 72 intellectuals but later signed by some 15,000 people, calling for constitutional changes to allow multi-party elections. Another was "Statement 258," calling for reform of article 258 of the penal code ("abusing democratic freedoms"), a provision often used to punish freedom of speech.
The government took some positive steps. On November 7, 2013, Vietnam signed the UN Convention Against Torture. On September 24, 2013, it issued a decree ending administrative sanctions for same-sex wedding ceremonies, although government sponsored amendments to the Marriage and Family Law did not grant legal recognition to same-sex marriage. The government also began phasing out detention and forced rehabilitation of sex workers in 2013.
Political Prisoners and the Criminal Justice System
Vietnam had an estimated 150-200 political prisoners at time of writing, including lowland Vietnamese and upland ethnic minority prisoners, some of whom were detained at least in part in connection with their religious activities. The total included at least 63 political prisoners convicted by politically controlled courts in 2013, an increase over the roughly 40 sentenced in 2012, which in turn exceeded the numbers sentenced in 2011 and 2010.
Vietnamese courts lack the independence and impartiality required by international law. Where the party or government has an interest in the outcome of a case, they—not the facts and the law—dictate the outcome. Trials are often marred by procedural and other irregularities that go along with achieving a politically pre-determined outcome.
The penal code provisions used most often against proponents of peaceful political change are articles 79, 87, 88, 89, 91, and 258, though other laws, such as tax laws, are also used. For example, prominent human rights lawyer and blogger Le Quoc Quan was arrested on December 27, 2012, shortly after he criticized the Communist Party's political monopoly, but his arrest was justified by trumped up charges of tax evasion. Following domestic and international calls for him to be released, his trial was delayed but on October 2, 2013, he was sentenced to 30 months' imprisonment.
Freedom of Expression, Opinion, and Information
Government repression targets many independent writers, bloggers, and rights activists. They face police intimidation, harassment, arbitrary arrest, prolonged detention without access to legal counsel or family visits, court convictions, and often severe prison sentences. Enhancing already extensive government powers to punish and otherwise deter digital freedom, Prime Minister Nguyen Tan Dung on September 1, 2013, put into force Decree 72, which contains provisions legalizing content-filtering and censorship, and outlawing vaguely defined "prohibited acts." It also forbids individuals from synthesizing news on their blogs or personal websites.


text: In this, Karl Lagerfeld's second Stern Fotografie portfolio, he focuses exclusively on his muse, supermodel Claudia Schiffer. The fashion master has been photographing the legendary beauty for 20 years now. For the first time he shares his favorite images to date in this fascinating collection. By turns provocative, elegant, and intimate, Lagerfeld captures Schiffer's many moods. Join us as we discover intriguing aspects to two of fashion's most powerful personalities.


text:
Product Description
This Ring is crafted from Solid 14 Karat Yellow Gold and set with Genuine Diamonds . It would make a lovely, reasonably-priced gift for yourself, family and friends on any occasion. These are not Blood Diamonds (Diamonds mined in a war zone in Africa, Blood Diamonds are also known as conflict, converted, hot or war diamonds). Click here to buy 14k Gold Wedding Set Ring, w/ 0.60 Carat Brilliant Cut & Invisible-set Diamonds, 1/4 in. (7mm) wide, size 6.5 now.
Jewelry Information
Brand Name: Gabriella Gold
Metal stamp: 14k
Metal: yellow-gold
Gem Type: Diamond
Setting: Prongs
Width: 7 millimeters
Total metal weight: 4 Grams
Ring size: 6.5
Diamond Information
Stone shape: round-brilliant-shape
Cut: very-good-cut
Minimum Total Carat Weight: 0.60 carats


text:
We would like to get everyones opinion on creating industry specific themes, we as a web agency find themeforest as a great resource for creating effective small websites.
However we find there is a lack of specific targeted themes to industries such as tradies (construction, electrical), finance, personal real estate, wholesalers, sports etc.
We believe there is a huge market for these themes and wanted to get some feedback from the designers/developers to see if this is something they would potentially like to create.
Most authors will agree that 99% of niche themes really don't sell as well as something semi-generic that can be customized for a specific need. However after that being said I actually have two real estate themes, and they sell well because of the rather large market and all the specific features required. Unlike most construction sites, finance or most other niche sites, which could really fit into a generic business type theme, with a few small tweaks.
Hi – all themes / templates here are created as generic as possible so you can easily adapt to any industry. You won't find many industry related items as the market share, although great in the real world, isn't that large for stock items.
Most themes are easy to change the colors – upload you own logo – the content provided in themes etc is just purely for show, so just because it may be a vector illustration image, doesn't mean you can't swap out for say a construction image etc
There are some awesome real estate themes however that have all the bells and wistles for MLS integration, mortgage calculators etc etc
Basically try not to look at the preview content images, but more at the layout and structure and features as altering simple css or background images can be done in a few hours and get you what you need.
Hope you find that useful.
Yeah I can see where you are both coming from and what you mentioned with finding a theme with a good structure and modifying that to your needs is what we currently do.
The quality of the themes is great which makes modifying them quick and easy.
Thanks for your feedback guys, we appreciate it.
Helpful Information
- Please read our community guidelines. Self promotion and discussion of piracy is not allowed.
- Open a support ticket if you would like specific help with your account, deposits or purchases.
- Item Support by authors is optional and may vary. Please see the Support tab on each item page.
Most of all, enjoy your time here. Thank you for being a valued Envato community member.


text:
Nihilistic New Metro: Last Light Gameplay Trailer
Gritty-looking Russian-accented choochoo-themed tunnel shooter Metro: Last Light was bought from THQ by Deep Silver, and will come out in North America on May 14th and everywhere else May 17th, which is weird because we live in an electronic age and I am an electronic girl and everything-should-come-out-at-once please. Anyway, here is a new trailer for it. It looks a bit chilly in that there Russia, and everything seems to have a rust problem.
http://feeds.feedburner.com/~ff/Rock...?d=nQ_hWtDbxek http://feeds.feedburner.com/~ff/Rock...?d=yIl2AUoC8zA
|All times are GMT -5. The time now is 03:56 PM.
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.
Copyright ©1998 - 2014, nV News.


text:
Bookstore DetailsThe only way to make the most-informed decision for textbooks at GateWay Community College is to know all of your options before choosing one. The CampusBooks.com search-and-comparison tool does exactly that -- presents you with all of your textbook buying choices so you can make the wisest decisions. Simply punch in the ISBNs for the books you need and we.ll show you all available copies and conditions and price points, including books carried by GateWay Community College Bookstore. Then make your decision about which books you want to purchase. It.s that easy.
Instructional Building, Room 124
108 North 40th Street
Phoenix AZ , 85034-1704
Hours: M-Th 8-5 (Summer hours, open longer rest of the year)
Email: email@example.com
Website: http://www.bkstr.com/Home/10001-10564-1
CampusBooks.com is not affiliated with or endorsed by the above university.


text:
Ohio Voting RegistersEdit This Page
From FamilySearch Wiki
United States Ohio Ohio Voting Registers
The Family History Library has very few Ohio voting registers resources, however one very unique collection has been acquired by the library that should be of interest to those searching immigrant ancestors in the Cleveland area.
The Board of Election in Cuyahoga County Ohio created and maintained a card file of naturalized registered voters. The records are currently in the custody of the Cuyahoga County Archives, Cleveland, Ohio.
The Board of Election Register of Naturalized Voters cards are a defacto index to naturalized voters in Cuyahoga County. While some naturalized voters gained citizenship and voting rights locally, not all naturalized voters were naturalized in Cuyahoga County. What make the record unique is that researches can be pointed to other previous locations of ancestors through the discovery of which city and state their ancestor was naturalized.
Besides providing the name, address and ward of the registered voter, the cards also provide rich naturalization information. Included on the cards are the location and date of the voter's naturalization, their native land, age when naturalized and the recorded volume and page number of the naturalization.
This collection can be found by searching the Family History Library catalog in FamilySearch.org. FHL films 2380531 (first of 46) The record consists of two alphabetical series captured on 46 16mm reels of microfilm. The first set contains naturalizations occurring ca. 1850-1912 and the second set contains years ca.1915-1970. Three rolls of addendum, A-Z cover years ca.1989-1919.
Need wiki, indexing, or website help? Contact our product teams.
Did you find this article helpful?
You're invited to explain your rating on the discussion page (you must be signed in).
BROWSEby country by topic
New to the Research Wiki?
In the FamilySearch Research Wiki, you can learn how to do genealogical research or share your knowledge with others.Learn More


text:
You must be registered to comment and vote on comments.
The Sports Network
By Scott Haynes, Senior College Basketball Editor
FACTS & STATS: Site: Redbird Arena (10,000) -- Normal, Illinois. Television: CSN-CHI. Home Record: Dayton 4-0, ISU 1-2. Away Record: Dayton 1-0, ISU 2-1. Neutral Record: Dayton 2-1, ISU 1-1. Conference Record: Dayton 0-0, ISU 0-0. Series Record: Dayton leads, 4-2.
GAME NOTES: The 25th-ranked Dayton Flyers hit the road for the only time in the month of December, as they take on the Illinois State Redbirds in a non- conference affair at Redbird Arena on Saturday evening.
Archie Miller's Flyers jumped into the national rankings thanks in large part to their marquee victory over Gonzaga in the Maui Invitational. Dayton wasn't able to capture the tournament title however, suffering its only loss of the season in a one-point setback to powerhouse Baylor a day later. The team was able to close out play by routing California and then returned home and added a seventh win in eight games with Wednesday's 56-46 victory over Delaware State. The Flyers will return home after this game for a five-game set at UD Arena that will carry the team into the next calendar year.
Dan Muller's Redbirds started the year off slow, with losses in four of the first five games, but have battled back and pulled even at 4-4 with three straight victories, including Wednesday's 75-56 rout of Chicago State.
Dayton holds a 4-2 series lead after recording a 74-73 victory at home over Illinois State last year.
The Flyers didn't exactly excel at the offensive end of the floor against Delaware State, but they didn't have to, as they held the Hornets to a mere .395 shooting and just 15 total field goals in the game. The Flyers weren't much better and really struggled from behind the arc (2-of-14), but were able to get the win. Senior Matt Kavanaugh led the team with a subdued 11 points. Senior guard Vee Sanford came off the bench and chipped in 10.
Lighting up the scoreboard is not how Dayton wins games. The Flyers are shooting an efficient .469 from the floor, but it leads to a modest 74.9 ppg. Junior guard Jordan Sibert is the team's top scorer at 13.6 ppg, fueled by an impressive .545 shooting. Senior forward Devin Oliver is the only other double-digit threat at this time at 12.8 ppg, but sophomore Dyshawn Pierre (9.6 ppg) and Sanford (9.5 ppg) are just under the mark.
The Redbirds trailed by two points at the half, but blew past Chicago State after the break, shooting a sizzling .625 from the floor in the second half in a 19-point win. Daishon Knight led the way with 15 points, on 6-of-12 shooting. Reggie Lynch came off the bench to tally 14 points, while Bobby Hunter finished with 12 in the win.
Illinois State is averaging 72.8 ppg this year, but the number could be much better if not for a mere 41.3 percent efficiency from the floor. Knight leads the team in scoring at a modest 13.8 ppg and is followed closely by Zach Lofton and his 13.3 ppg. These is very little scoring depth behind those two however, with Hunter ranking third on the team at 9.0 ppg.
The Redbirds are one a nice little run, but Dayton travels well and should be able to earn the win here.
Sports Network Predicted Outcome: Dayton 73, Illinois State 60
650 3rd Ave S., Suite 1300
Minneapolis, MN 55488
(612) 673-4000
© 2015 StarTribune. All rights reserved.
StarTribune.com is powered by Limelight Networks


text:
I will have lots more interesting stuff to show you soon!!! Lots of new glass to be identified as well as other unusual decorative items for the home,Vintage Paper Ephemera,(The Royal family,Cars), and of course more Vintage Clothing!!!!!
1978 Pastel Print of Buck in Forest
Item #
K.Maroon 1978 Pastel Print of Buck in Forest
Limited Edition print by known Artist K.Maroon signed in pencil and dated '78. Beautiful Pastel featuring a Buck peering thru the Foliage and trees to see if the coast is clear! I Found 1 other exactly the same on line for $75.Very nice routed frame made of a beautiful reddish brown wood with nice grain. Shipping is $17.95 USA Domestic Priority (3 days).
Circa: 1978
Condition: Very Good
Size: Picture - 15 1/4 X 19 1/4 inches, With Frame- 20 1/2 X 24 1/2 inches
Country of Origin: US
Manufacturer: K. Maroon
Author: K. Maroon
If you are finished shopping, click on the shopping cart button to view your order.
To order an item from Hallelujah Vintage, just click on the 'Add to Cart' button.
Clicking on the thumbnail picture of any item gives you a larger picture of that item.
Thanks for shopping at Hallelujah Vintage!
Hallelujah Vintage
Contact us!
PO Box 1855Easton, PA 18044-1855United States
Updated Thursday, May 28 2015Product descriptions copyright© 2015 Hallelujah VintageAll else copyright© 1995-2015 TIAS.com All rights reserved.


text:
Movies' first look Photog...
Sabki Bajegi Band
Far from the Madding Crow...
Bajrangi Bhaijaan Photoga...
Madmast Barkhaa Photogall...
I Love Desi Photogallery ...
Surkhaab Photogallery - T...
P Se PM Tak Photogallery ...
Makad Jaala - A Political...
Baahubali: Trailer launch...
Celebs in news
Inside Celebrities Homes
Celebrities funny party c...
Hottest magazine covers
B-town celebs' candid pic...
Celebs Honeymoon Pictures
Scandals caught on tape
B-town celebs' candid pics
Celebrities with Hot Navel Show
Celebs and their controversies
Hotties desperate for publicity
Movies' first look
Pregnant hotties
R Madhavan's birthday party
Before and After: Cosmetic surgery
Lesser-known Queens of Striptease
Cannes 2015
Common Uncommon Crazes of India
Celebs' oops moment!
Celebs' 'Twitpics'
Most embarrassing B'wood photo shoots!
Hot moments on TV!
Odd moments in sports
Bold acts in B'wood!
Amy Jackson
Celebrity FB Pics
Katrina Kaif's Portfolio Pics
Divas in sheer ensembles


text:
Call us now on 1300 786 756
SecurePay is committed to meeting security standards that are industry leading.
Our security efforts are centred around the safe processing and storage of sensitive personal credit card, charge card and direct entry information. Payment Card Industry Data Security Standard (PCI DSS) compliance is a global security scheme run by Visa and MasterCard to ensure personal information and data is protected. SecurePay holds the highest level of PCI DSS accreditation.
The company is regularly and externally audited by Vectra Corporation, and as a wholly owned subsidiary of Australia Post, SecurePay's financial and internal control systems are also externally audited by the Australian National Audit Office (ANAO). All SecurePay staff undergo screening and extensive background checks.
Ongoing network scans, which are a requirement of PCI DSS, are completed regularly and are performed by McAfee Secure.
The services that SecurePay is authorised to provide under PCI DSS include:
View our Level 1 PCI-DSS Certificate of Compliance


text:
29 CFR 4208.7 - Adjustment of withdrawal liability for subsequent withdrawals.
The liability of an employer for a partial or complete withdrawal from a plan subsequent to a partial withdrawal from that plan in a prior plan year shall be reduced in accordance with part 4206 of this chapter.
Title 29 published on 2013-07-01
no entries appear in the Federal Register after this date.


text:
Ahn Seong-gi's entire acting history has been revealed.
Everything from Ahn Seong-gi's debut to the present moment can be seen at one glance.
Ahn Seong-gi, who used to smile like a naïve boy and be so cute, earned himself the title 'genius kid actor' long ago.
Having debuted with director Kim Ki-young's "Twilight Years" in 1957, Ahn Seong-gi was given an acting award the San Francisco International Film Festival.
He was also the naughty son in Kim Ki-young's "The Housemaid - 1960" in 1960 and performed just as well as any grown up actor.
Through his performance the 1990 movie "Good Wind" by Lee Jang-ho, Ahn Seong-gi was chosen for the film "Our Happy Youth" and was quite a popular young man amongst the ladies.
Rising to become the best actor in Korea and seen as a perfectionist by the public, Ahn Seong-gi earned himself the nickname of Korea's 'National Actor' and worked with Chung Ji-young, Kang Woo-seok, Lee Myeong-se, Lee Joon-ik and more.
Ahn Seong-gi is loved for his soft charisma that becomes more and more dignified with age and emotion.
Source : news.nate.com/view/20...Copy & paste guideline for this article
"Ahn Seong-gi's 50 years of acting, from child to adult"
by HanCinema is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
Based on a work from this source
Related movies/dramas
You're reading the news with potential spoilers, make them spoiler free, dismiss
Newer : Photos that cross between reality and illusion
Korean movies burst into Japan this year
2012/01/08 (Source)
Korean movies will be continuously released in Japan this year. "The Yellow Sea" by Ha Jeong-woo ,...More
Kim Hye-seon breaks up with director Jang Hyeon-soo after 3 years
2012/01/08 (Source)
Actress Kim Hye-seon (42) broke up with Jang Hyeon-soo (52). In an interview with "TV Report" in ,...More
Lee Young-eun script reading for "Daddy's Sorry"
2012/01/08 (Source)
Lee Young-eun has been cast for the drama "Daddy's Sorry". On January 6th her management revealed,...More
Subscribe to HanCinema Pure to remove ads from the website (not for episode and movie videos) for US$2.99 per month (you can cancel anytime).
The first step is to be a member, please click here : Sign up, then a subscribe button will show up.
Movie of the week
2015 51st PaekSang Arts Awards
Most Popular Actress in a Movie
Most Popular Actress in a Drama
* Actresses on the Red Carpet *
Today's birthdays


text:
You can't watch movies and TV shows on your device just yet
But you can still browse and buy
Sorry, but blinkbox movies and TV shows are currently only available in the UK
Rent, buy and watch the latest movies and TV shows online
How it works
Browse the latest movies and TV
blinkbox has more of the latest movies and TV shows than our competitors.
Pay for what you want to watch
No subscription, so you only pay when you rent or buy a movie or TV show, from just 99p.
Enjoy on a range of devices
blinkbox is available on PC, Mac, mobile, tablets, Chromecast, consoles, smart TVs, set‑top boxes and Blu‑ray players.
(Foreign language film with English subtitles)
10 years ago, when Yuki and her friends broke into an abandoned haunted house, she vanished without a trace... until tonight. As the shocking truth of what happened begins to emerge, the friends must face up to the past and return to the ghost house, where something lies in wait... and it wants revenge. This thrill-packed horror from the director of 'The Grudge takes fear to a whole new dimension!
Asset Details
- Genre
Horror, Thriller, World Cinema
- Certificate 15
Suitable only for 15 years and over
- Run Time
1 hour 25 minutes
- Released
- Cast & Crew
Viewing options
- Watch online
PC, Mac, Chromecast, iPad, iPhone, Android phones and tablets, Windows phones and tablets, Xbox, PS3, smart TVs, set-top boxes and Blu-ray players.
- Find out more
- Download
Watch offline on iPad and Android tablets. Includes rentals.
Download is also available on Windows PC but requires a UK internet connection to initiate playback.
- Find out more


text:
Tension: crosses vs mains
Its a no brainier when stringing multi mains & poly crosses to strings the crosses about 4 pounds less than the mains. What about when they are switched; poly mains & multi crosses. If I string multi mains @ 58 & poly crosses @ 54 then switched what tension is recommended? I'm thinking a good starting point would be to string both @ 56 and go from there.
What are you trying to hope to achieve by changing tensions in mains vs crosses?
Poly is going to lose tension much faster than a multi anyway, so why drop the reference tension?
My daughter's current hybrid set up is NXT 16cross and smooth poly main. Both strung at 54 lbs.
Drak....what do you think will create more pocketing and more spin friendly..... either to lower tension in main poly only or lower in both main and cross?
Isn't it most important to set the tension mains/crosses in such a way that frame doesn't distort?
If that's true, there is little you can do except changing mains vs crosses or change stringtype/tension all together?
I don't think I've seen people stringing mains tighter. It's always crosses 1-3 lbs tighter, because there is so much more friction pulling tension on the crosses that your actual tension will be much less than your reference tension .
If you have that much of a tension deficit in your crosses it will distort and shorten the frame.
If you want more spin and better ball pocketing, put the nxt in the mains, and poly in the crosses.
Funny thing is, that when someone wants a differing tension (mains vs crosses, or vice versa) and I ask them what they are trying to accomplish by doing this, they don't have a clue, and simply state, someone told them to string like this and they have stuck to it.
Remember, the longest strings in the frame are the mains, which would make more sense doing it this way, if one wants to make the string bed more "proportional".
Drakulie, I am very skeptical if you are saying the pros you have strung for are stringing the mains and crosses the same tension even if they are using a hybrid. I have seen numerous web pages and threads on this board showing a great deal of variety in string tensions between mains and crosses. There is plenty of information showing Roger Federer's tensions.
Tim Straw just had an article in, I believe, RSI magazine in which he states you should string poly 20lbs below the tension you were used to stringing your multi. He says it twice for impact. I think 20lbs is a little much but it does lead to questions as to what tensions to use in a hybrid string job. If you strung you multi over the years at 60lbs and now decide you are going to try a poly/multi hybrid, are you going to string the poly in the mains at 40lbs (as Tim suggests) and the multi at 60lbs like normal. I don't think so but you are not going to string them both at 60lbs as you suggest.
There are many reasons why people use different tensions between mains and crosses. They do it for spin, feel, not to distort the racquet, power, control and so on.
But yes, I would say most pros, even when requesting 4 knots (two piece) or with hybrids typically string them the same tension.
But here are some other pros:
Donald Young, Solinco 63 lbs (one piece).
Jack Sock, Pro Hurricane Tour 38 lbs (two piece).
DelPotro, Alu Power, 56 lbs (one piece).
Marty Fish, Gut Mains, Timo crosses, 55lbs. (pre stretched both gut and timo)
kei Nishikori, Alu Rough mains 50, gut crosses 52. also 51/53.
Sam Querrey, one piece 60 and also 62 lbs.
Ryan Harrison, Pro Hurricane Tour Mains 56, Gut Crosses 60.
Wayne Odesnik, BBO two piece 50 lbs. (now twisted razor)
Kim Klijsters, gut 30kg
Jim Courier, gosen mains/alu power crosses, 60 lbs.
Dominic Thiem, IsoSpeed, two piece 26kg
As you could see, from my experience, which also includes futures and challengers, and nationals, most players just provide one tension, regardless of one or two piece, or if they are even hybriding.
That said, I completely disagree with him. For example, what if someone strings their frame with regular synthetic at 35lbs? Are we to now string their frame at 15 lbs with a poly? I don't think so.
Tim is a big advocate of stringing low, especially with poly, and pushes proprotional stringing a lot. If that works for his clients, great. But make no mistake, it doesn't make it "law", nor has their been any evidence to suggest it will be the end all be all for every player. If this were the case, every pro would be stringing in the 30's or with one tension in the mains and another in the crosses, which they clearly aren't.
The master has spoken!
Also, don't forget about the miami challenger next year. I already have your space booked. You have to join me. We are going to have FUN, fun fun!!!
Drakulie you did not address the issue of tension in hybrids. Your first post in this thread suggests that there is no reason for having different tensions in the mains and crosses when stringing a poly/multi or nylon combination.
Are you suggesting that a poly main/cross and a multi or nylon main/cross hybrid should have the same tension. If so that goes against everything that we hear from the experts and the string manufactures. We see a wide variety of tensions mixes if the links below are true.
I think drak is saying that most people who ask for different tension for the mains/crosses don't know why they are doing so.
But there is merit in doing so if you know what you are doing or why.
A person of drak's calibre, knows alot more about strings and stringing than just about anybody on these boards.
So Xonemains, you are saying go with Drakulie's suggestion to string mains and crosses the same and ignore the string manufacturer's instructions to string poly 10-15% lower? Or are you saying to string your poly the same as your multi? If I string my racquet with VS Gut mains at 60lbs should I string my poly crosses at 60lbs also? That's what is being said in this thread and it's complete nonsense.
i had a similar question. my preferred setup is Alu power @ 47 pounds CP full bed in a prestige pro prostock: 12.4oz 355 SW. i hit hard (for a 4.0/4.5) with a good amount of spin (mostly top, some BH slice) and will flatten out depending on the ball. i am a winner from any spot kind of guy (for which i am trying to control) directional and depth control is very important to me on groundies as well as flat serves.
i am considering putting syn gut in crosses to:
to soften the feel
be easier on my arm
improving amount of time i can play with a string job
save some money
will hybriding achieve my goals? will a hybrid lose the direction and depth control mentioned above?
I am am not sure what a good tension would be on the crosses. conventional wisdom says 45-47 pounds, will this give too much power. i was thinking to go higher in the crosses, say in the 50-52 pound range?
what tension would you suggest in this scenario?
i have OG sheep, do you have a suggested syn gut for this situation? pref not too expensive
thanks for your help and experience.
One of my goals on determining cross/main tension differential is racquet distortion. Measure your racquet dimensions after you cut out the old strings and BEFORE you mount the racquet on the stringer. Then measure the dimensions again after you complete the string job and remove the racquet from the stringer.
How much distortion are you getting? On my racquet a 2lb difference results in virtually no racquet distortion. The less distortion, the better my stick seems to play...
However, I think you are confused when it comes to hybrids, as for instance, 60 lbs gut mains, "most" people will string poly crosses at 58 or 57 (but some can also do 60, which is not at all "nonsense", while some may do 56# crosses at most, typically), but to drop it the "15%" would be crosses at *51*: and this setup, a *60lb gut main/51lb poly cross*, will possibly warp a frame, and also just play erratically. As poly also leaks tension more than other string types, it will go downhill fast.
I've seen a frame go from oval shaped to more circular from gut mains doing this, even after a 'normal' stringing of 60/56, as over enough time the crosses will have leaked up to twice as much tension than the mains, and the gut mains will be pulling strong, as gut holds tension exceptionally. Even 60/54 (using the -10% idea), would not be great advice, and you don't see many people doing this. The general consensus is to sometimes drop crosses about 1-3 pounds from mains, which will slightly alter the shape of the sweetspot as compared to crosses the same or stiffer than mains.
Stiffer frames may not warp or anything, but the playability is going to be compromised the more space you create between mains and crosses. I've tried it before stringing mains at 60 and crosses in the 40s... worst idea ever.
Here's more pro data:
Djokovic, Novak
Head Youtek Speed Pro
Wilson Natural/Luxilon Alu Power 1.25
Western & Southern Financial Group Masters 2009
Federer, Roger
Wilson K Six.One Tour 90
Wilson Natural/Luxilon Alu Rough 1.25
Western & Southern Financial Group Masters 2009
Murray, Andy
Head Youtek Radical
Luxilon Alu Power 1.25/Babolat VS
Australian Open 2010
Volandri, Filippo
Luxilon poly
10.5/10.5 (23 pounds)
Roland Garros 2009
Blake, James
Dunlop 200G
Luxilon Alu Power 1.25
BNP Paribas Open 2011
GlenK is dead on. Distortion is to be avoided at all costs.
You didn't read my post right. I never said do exactly what drak says.
You can do whatever you want with tension, but I will say this.
Do not go more than 4 lbs difference in tension in between mains and crosses. You will wrap the frame over time.
So in your case, I would not go under 56lbs for crosses or over 64lbs.
Read my sig, don't use the same tension either:)
Good luck with it.
|All times are GMT -8. The time now is 06:09 PM.
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2015, vBulletin Solutions, Inc.
© 2006 - Tennis Warehouse


text:
Here's a build that I think has real potential for PvP:
Dagger Mastery: 12+4
Critical Strikes: 5+1
Golden Lotus Strike
Temple Strike
Repeating Strike
Exhausting Failure
Disrupting Stab
Power Spike
Cry of Frustration
Rez Sig
It's basically a shutdown mesmer that kills them, too. Between Temple Strike, Disrupting Stab, Power Spike, and Cry of Frustration, you should be able to stop any caster's key spells. And all of those skills do damage as well, so while you shut them down their life total is simultaneously falling. Then you can go on a Repeating Strike spike to finish them off, or just keep doing damage through attacks.
And this build should be stronger against non-casters than a typical shutdown mes. Not only can it just fight back with the assassin skills, but the blinding from Temple Strike can help a lot against wars, rangers, and assassins.
Golden Lotus Strike is there to fill up energy, although I have to test it to see whether or not Mantis Sting would be better in the slot. Crippling is always good, as is having a lead attack that refreshes much faster...
Any thoughts on the build?


text:
Since the lens
by boya84 - 10/1/13 5:49 AM
In Reply to: Sony HDR-CX110 Snowy Screen Issue by budzoracing
is just glass, I don't think that is the source of the problem. More likely the imaging chip, or other electronic component not doing its job for whatever reason.
It is likely the diagnosis and repair will be more than the expense of replacing the camcorder - but you won't know for sure unless you contact a Sony authorized repair shop - or Sony.