1. A method of performing in a computer processor vector packed unary value decoding using masks in response to a single vector packed unary decoding using masks instruction that includes a destination vector register operand, a source writemask register operand, and an opcode, the method comprising steps of:
executing the single vector packed unary value decoding using masks instruction to determine and decode the unary encoded values stored in the source writemask register; and
storing each determined and decode unary encoded values as packed data elements in packed data element positions of the destination register that correspond to their position in the source writemask register.
2. The method of claim 1, wherein each unary encoded value is stored in a format of its most significant bit position in the writemask being a 1 value and zero or more 0 values following the 1 value in bit positions of the destination writemask register that are of less significance than the bit position of the 1 value.
3. The method of claim 1, wherein the decoded least significant unary encoded value of the source vector register is stored in the least significant packed data element position of the destination register.
4. The method of claim 1, wherein the source writemask register is 16 bits.
5. The method of claim 1, wherein the source writemask register is 64 bits.
6. The method of claim 1, wherein after all of the decoded unary encoded values are stored in the destination register, all remaining packed data element positions of the destination vector register are set to all 1s.
7. The method of claim 1, wherein the executing step comprises:
determining if a least significant bit position of the source writemask register is a 0;
if the value is 0, determining a value a next least significant bit position of the source mask register and maintaining a count of preceding 0s.
if the value is not 0, then the decoded packed unary value is the number of preceding 0s.
8. The method of claim 1, wherein the destination vector register is 128, 256, or 512 bits in size.
9. An article of manufacture comprising:
a tangible machine-readable storage medium having stored thereon an occurrence of an instruction, wherein the instruction’s format specifies as its source operand a writemask register and specifies as its destination a single destination register, and wherein the instruction format includes an opcode which instructs a machine, responsive to the single occurrence of the single instruction, to cause a determination and decode of unary encoded values stored in the source writemask register and storage of each determined and decode unary encoded values as packed data elements in packed data element positions of the destination register that correspond to their position in the source writemask register.
10. The article of manufacture of claim 9, wherein each unary encoded value is stored in a format of its most significant bit position in the writemask being a 1 value and zero or more 0 values following the 1 value in bit positions of the destination writemask register that are of less significance than the bit position of the 1 value.
11. The article of manufacture of claim 9, wherein the decoded least significant unary encoded value of the source vector register is stored in the least significant packed data element position of the destination register.
12. The article of manufacture of claim 9 wherein the source writemask register is 16 bits.
13. The article of manufacture of claim 9, wherein the source writemask register is 64 bits.
14. The article of manufacture of claim 9, wherein after all of the decoded unary encoded values are stored in the destination register, all remaining packed data element positions of the destination vector register are set to all 1s.
15. The article of manufacture of claim 9, further to:
determine if a least significant bit position of the source writemask register is a 0;
if the value is 0, determine a value a next least significant bit position of the source mask register and maintaining a count of preceding 0s.
if the value is not 0, then the decoded packed unary value is the number of preceding 0s.
16. An apparatus comprising;
a hardware decoder to decode a single vector packed unary decoding using masks instruction that includes a destination vector register operand, a source writemask register operand, and an opcode;
execution logic to determine and decode the unary encoded values stored in the source writemask register and store each determined and decode unary encoded values as packed data elements in packed data element positions of the destination register that correspond to their position in the source writemask register.
17. The apparatus of claim 16, wherein each unary encoded value is stored in a format of its most significant bit position in the writemask being a 1 value and zero or more 0 values following the 1 value in bit positions of the destination writemask register that are of less significance than the bit position of the 1 value.
18. The apparatus of claim 16, wherein the decoded least significant unary encoded value of the source vector register is stored in the least significant packed data element position of the destination register.
19. The apparatus of claim 16, wherein the source writemask register is 16 bits.
20. The apparatus of claim 16, wherein the source writemask register is 64 bits.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A vehicle stability control system, comprising:
a 5-sensor cluster;
a stability controller configured to communicate with the 5-sensor cluster and receive signals corresponding to a lateral acceleration, a longitudinal acceleration, a yaw rate, a roll rate, and a pitch rate from the 5-sensor cluster, the stability controller also configured to determine a braking amount or a throttle amount to maintain vehicle stability;
a brake controller configured to communicate with the stability controller and receive a braking request from the stability controller; and
a throttle controller configured to communicate with the stability controller and receive a throttle request from the stability controller.
2. The vehicle stability control system of claim 1, wherein the stability controller is configured to receive signals corresponding to a sideslip angle, a vehicle longitudinal velocity, wheel speeds, a throttle input, a transmission status, and a brake status.
3. The vehicle stability control system of claim 2, wherein the stability controller is configured to receive signals corresponding to a clutch status.
4. The vehicle stability control system of claim 2, wherein the brake status includes a foot brake stratus and a parking brake status.
5. The vehicle stability control system of claim 1, wherein the stability controller comprises a state estimator.
6. The vehicle stability control system of claim 1, wherein the state estimator is configured to receive signals corresponding to the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate from the 5-sensor cluster.
7. The vehicle stability control system of claim 6, wherein the state estimator is configured to determine road grade based on inputs from the 5-sensor cluster.
8. The vehicle stability control system of claim 7, wherein the state estimator is configured to use the road grade to determine whether the vehicle’s throttle or brakes should be activated via a throttle request or braking request, respectively.
9. A method for performing hill hold control, the method comprising:
receiving signals corresponding to a lateral acceleration, a longitudinal acceleration, a yaw rate, a roll rate, and a pitch rate;
calculating a vehicle pitch angle from the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate;
calculating a road grade from the vehicle pitch angle; and
determining whether to apply brakes of a vehicle based on the road grade, a vehicle speed or wheel speeds, a transmission status, a throttle input, and a brake status.
10. The method of claim 9, wherein determining whether to apply brakes of the vehicle is based additionally on a sideslip angle.
11. The method of claim 9, wherein determining whether to apply brakes of the vehicle is based additionally on a clutch status.
12. The method of claim 9, further including applying brakes of the vehicle when appropriate until driver applies brakes or presses throttle when in gear.
13. The method of claim 9, wherein the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate are received from a 5-sensor cluster.
14. A method for maintaining a driver’s intended speed of a vehicle during hill driving, the method comprising:
receiving signals corresponding to a lateral acceleration, a longitudinal acceleration, a yaw rate, a roll rate, and a pitch rate;
calculating a vehicle pitch angle from the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate;
calculating a longitudinal velocity gradient from the vehicle pitch angle;
determining whether the longitudinal velocity gradient is substantially close to zero; and
changing a throttle input of the vehicle to change the vehicle’s velocity if the longitudinal velocity gradient is not substantially close to zero.
15. The method of claim 14, further comprising applying brakes of the vehicle to change the vehicle’s velocity if the longitudinal velocity gradient is not substantially the same as a driver’s intended speed.
16. The method of claim 14, wherein the signals corresponding to the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate are received from a 5-sensor cluster.
17. A method for maintaining a constant speed for a vehicle, the method comprising:
receiving signals corresponding to a lateral acceleration, a longitudinal acceleration, a yaw rate, a roll rate, and a pitch rate;
calculating a vehicle pitch angle from the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate;
calculating a longitudinal velocity gradient from the vehicle pitch angle; and
maintaining the longitudinal velocity substantially at zero.
18. The method of claim 17, wherein the longitudinal velocity gradient is maintained substantially at zero by changing a throttle input of the vehicle.
19. The method of claim 17, wherein the longitudinal velocity gradient is maintained substantially at zero by applying brakes of the vehicle.
20. The method of claim 17, wherein the signals corresponding to the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate are received from a 5-sensor cluster.
21. The vehicle stability control system of claim 1, wherein the stability controller is configured to detect a vehicle sliding into a loss of control.
22. A method for detecting a vehicle sliding into loss of control, the method comprising:
receiving signals corresponding to a lateral acceleration, a longitudinal acceleration, a yaw rate, a roll rate, and a pitch rate;
calculating a vehicle pitch angle from the lateral acceleration, the longitudinal acceleration, the yaw rate, the roll rate, and the pitch rate;
calculating a longitudinal velocity gradient from the vehicle pitch angle;
calculating a signed longitudinal velocity based on the longitudinal velocity gradient;
calculating a sideslip angle;
comparing the magnitude of the sideslip angle with a first threshold indicative of the vehicle’s motion trend;
comparing the magnitude of the longitudinal velocity gradient with a second threshold indicative of lateral motion of the vehicle.
23. A vehicle stability control system for controlling a vehicle’s sliding into loss of control, the system comprising:
detecting the vehicle’s sliding into loss of control by comparing the vehicle’s longitudinal velocity gradient with a reference speed computed from wheel speed sensors inputs;
detecting a lateral velocity of the vehicle and a longitudinal velocity of the vehicle when vehicle sliding is detected;
calculating a sliding velocity vector of the vehicle from the lateral velocity of the vehicle and the longitudinal velocity of the vehicle;
braking the vehicle such that tire forces of the vehicle are aligned in a direction opposite the vehicle sliding velocity vector to remove a sliding energy of the vehicle.