IP Library Granted Patent US 9,804,848
Granted Patent B2
US 9,804,848 · App. 14/562,624 · Granted Oct 31, 2017

Instruction and logic for processing text strings

Inventors: Michael A. Julier (Hillsboro, OR); Jeffrey D. Gray (Portland, OR); Srinivas Chennupaty (Portland, OR); Sean P. Mirkes (Beaverton, OR); Mark P. Seconi (Beaverton, OR)
Assignee: Intel Corporation
G06F9/30145G06F7/06G06F9/30G06F9/3001G06F9/3013G06F9/3017G06F9/30021G06F9/30029G06F9/30036G06F9/30098G06F9/30109G06F9/30167G06F9/30185G06F9/30192G06F9/3802G06F9/3853G06F9/3887G06F12/0875G06F9/34G06F9/3824G06F9/3885G06F2212/452
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,804,848
App. No.
14/562,624
Granted
Oct 31, 2017
Kind
B2
Abstract

Method, apparatus, and program for performing a string comparison operation. The apparatus includes execution resources to execute a first instruction. In response to the first instruction, the execution resources store a result of a comparison between each data element of a first and second operand corresponding to a first and second text string, respectively.

Claims (52)

1. A hand held device comprising:

a plurality of system components, including:

a liquid crystal display controller;

a dynamic random access memory;

a direct memory access controller;

a wireless transceiver;

a network controller;

a flash memory device;

a graphics controller;

a memory controller; and

an audio controller; and

a processor coupled to the plurality of system components, the processor comprising:

a decoder to decode a compare instruction;

a plurality of 64 -bit single-instruction multiple data (SIMD) integer data registers, including:

a first and second 64-bit SIMD integer data register to store a first and second 64-bit SIMD integer operand, respectively, each of the first and second 64-bit SIMD integer operands to include a plurality of integer data elements; and

a 64-bit SIMD destination register, into which at least one result of performing the compare instruction is to be stored, wherein the first and second 64-bit SIMD integer data registers and the 64-bit SIMD destination register are to be identified by a first and second SIMD operand field and a SIMD destination field, respectively, of the compare instruction, and wherein the compare instruction includes a field to indicate one of a plurality of data element sizes for the integer data elements of the first and second 64-bit SIMD integer data operands, including an 8-bit data element size, a 16-bit data element size, and a 32-bit data element size; and

a plurality of execution units, wherein an execution unit of the plurality of execution units is to execute the compare instruction, wherein the compare instruction is to cause the processor to:

compare integer data elements of the first 64-bit SIMD integer operand with integer data elements of the second 64-bit SIMD integer operand, wherein the integer data elements of the first 64-bit SIMD integer operand to be compared with the integer data elements of the second 64-bit SIMD integer operand are to be in same data element positions, and

store a plurality of indicators of whether the compared integer data elements of the first 64-bit SIMD integer operand and the integer data elements of the second 64-bit SIMD integer operand are equal, wherein the plurality of indicators are to be expanded data elements, each of a first multi-bit size.

2. The hand held device of claim 1 , wherein the graphics controller and the memory controller are integrated on a same die as the processor.

3. The hand held device of claim 1 , wherein the field to indicate said one of the plurality of data element sizes is a 2-bit field.

4. The hand held device of claim 1 , the first logic to fetch a second compare instruction to compare a first plurality of packed single precision floating point (SPFP) data elements with a second plurality of packed SPFP data elements, wherein at least one execution unit of the plurality of execution units is to execute the second compare instruction, wherein the second compare instruction is to cause the processor to:

determine whether each of the packed SPFP data elements of the first and second pluralities of packed SPFP data elements is valid,

compare only valid SPFP data elements of the first plurality of packed SPFP data elements with only valid SPFP data elements of the second plurality of packed SPFP data elements, and

store a plurality of indicators of whether the compared valid SPFP data elements of the first plurality of packed SPFP data elements and the valid SPFP data elements of the second plurality of packed SPFP data elements are equal.

5. The hand held device of claim 1 , wherein the processor is a RISC processor.

6. The hand held device of claim 1 , wherein the hand held device is a cellular phone.

7. The hand held device of claim 1 , wherein the wireless transceiver is a Bluetooth wireless transceiver.

8. The hand held device of claim 1 , wherein the plurality of system components further include a Universal Serial Bus port.

9. The hand held device of claim 1 , wherein the processor further comprises a first logic to fetch the compare instruction.

10. A hand held device comprising:

a plurality of system components, including:

a liquid crystal display controller;

a dynamic random access memory;

a direct memory access controller;

a wireless transceiver;

a network controller;

a flash memory device;

a graphics controller;

a memory controller; and

an audio controller; and

a processor coupled to the plurality of system components, wherein the processor is a RISC processor, the processor comprising:

a decoder to decode a compare instruction;

a plurality of 64-bit single-instruction multiple data (SIMD) integer data registers, including:

a first and second 64-bit SIMD integer data register to store a first and second 64-bit SIMD integer operand, respectively, each of the first and second 64-bit SIMD integer operands to include a plurality of integer data elements; and

a 64-bit SIMD destination register, into which at least one result of performing the compare instruction is to be stored, wherein the first and second 64-bit SIMD integer data registers and the 64-bit SIMD destination register are to be identified by a first and second SIMD operand field and a SIMD destination field, respectively, of the compare instruction, and wherein the compare instruction includes a 2-bit field to indicate one of a plurality of data element sizes for the integer data elements of the first and second 64-bit SIMD integer operands, including an 8-bit data element size, a 16-bit data element size, and a 32-bit data element size; and

a plurality of execution units, wherein an execution unit of the plurality of execution units is to execute the compare instruction, wherein the compare instruction is to cause the processor to:

compare integer data elements of the first 64-bit SIMD integer operand with integer data elements of the second 64-bit SIMD integer operand, wherein the integer data elements of the first 64-bit SIMD integer operand to be compared with the integer data elements of the second 64-bit SIMD integer operand are to be in same data element positions, and

store a plurality of indicators of whether the compared integer data elements of the first 64-bit SIMD integer operand and the integer data elements of the second 64-bit SIMD integer operand are equal, wherein the plurality of indicators are to be expanded data elements, each of a first multi-bit size,

wherein the graphics controller and the memory controller are integrated on a same die as the processor.

11. The hand held device of claim 10 , the first logic to fetch a second compare instruction to compare a first plurality of packed single precision floating point (SPFP) data elements with a second plurality of packed SPFP data elements, wherein at least one execution unit of the plurality of execution units is to execute the second compare instruction, wherein the second compare instruction is to cause the processor to:

determine whether each of the packed SPFP data elements of the first plurality of packed SPFP data elements is valid.

Continuity (4)
Continuation 13843576 · Mar 15, 2013
Continuation 13164715 · Jun 20, 2011
Continuation 11525981 · Sep 22, 2006
Related Publication 20150178081A1 · Jun 25, 2015