| Parameterizable clip instruction and method of performing a clip operation using the same -> Monitor Keywords |
|
Parameterizable clip instruction and method of performing a clip operation using the sameUSPTO Application #: 20070074007Title: Parameterizable clip instruction and method of performing a clip operation using the same Abstract: A parameterizable clip instruction for SIMD microprocessor architecture and method of performing a clip operating the same. A single instruction is provided with three input operands: a destination address, a source address and a controlling parameter. The controlling parameter includes a range type and a range specifier. The range type is a multi-bit integer in the operand that is used to index a table of range types. The range specifier plugs into the range type to define a range. The data input at the source address is clipped according to the controlling parameters. The instruction is particularly suited to video encoding/decoding applications where interpolations or other calculations, lies outside the maximum value and that final result will have to be clipped to saturation value, for example, the maximum pixel value. Signed and unsigned clipping ranges may be used that are not only powers of two. (end of abstract) Agent: Hunton & Williams LLP Intellectual Property Department - Washington, DC, US Inventors: Nigel Topham, Yazid Nemouchi, Simon Jones, Carl Norman Graham, Kar-Lik Wong, Aris Aristodemou USPTO Applicaton #: 20070074007 - Class: 712221000 (USPTO) Related Patent Categories: Electrical Computers And Digital Processing Systems: Processing Architectures And Instruction Processing (e.g., Processors), Processing Control, Arithmetic Operation Instruction Processing The Patent Description & Claims data below is from USPTO Patent Application 20070074007. Brief Patent Description - Full Patent Description - Patent Application Claims CROSS REFERENCE TO RELATED APPLICATIONS [0001] This application claims priority to U.S. Provisional Patent Application No. 60/721,108 titled "SIMD Architecture and Associated Systems and Methods," filed Sep. 28, 2005, the disclosure of which is hereby incorporated by reference in its entirety. FIELD OF THE INVENTION [0002] The invention relates generally to embedded microprocessor architectures and more specifically to a clip instruction for SIMD microprocessor architectures and a method of performing a clip operation using such a clip instruction. BACKGROUND OF THE INVENTION [0003] Single instruction multiple data (SIMD) architectures have become increasingly important as demand for video processing in electronic devices has increased. The SIMD architecture exploits the data parallelism that is abundant in data manipulations often found in media related applications, such as discrete cosine transforms (DCT) and filters. Data parallelism exists when a large mass of data of uniform type needs the same instruction performed on it. Thus, in contrast to a single instruction single data (SISD) architecture, in a SIMD architecture a single instruction may be used to effect an operation on a wide block of data. SIMD architecture exploits parallelism in the data stream while SISD can only operate on data sequentially. [0004] An example of an application that takes advantage of SIMD is one where the same value is being added to a large number of data points, a common operation in many media application. One example of this is changing the brightness of a graphic image. Each pixel of the image may consist of three values for the brightness of the red, green ad blue portions of the color. To change the brightness, the R, G and B values, or alternatively the YUV values are read from memory, a value is added to it, and the resulting value is written back to memory. A SIMD processor enhances performance of this type of operation over that of a SISD processor. A reason for this improvement is that that in SIMD architectures, data is understood to be in blocks and a number of values can be loaded at once. Instead of a series of instructions to incrementally fetch individual pixels, a SIMD processor will have a single instruction that effectively says "get all these pixels" Another advantage of SIMD machines is multiple pieces of data are operated on simultaneously. Thus, a single instruction can say "perform this operations on all the pixels." Thus, SIMD machines are much more efficient in exploiting data parallelism than SISD machines. [0005] SIMD architectures have particular promise for video encoding/decoding applications where many repetitive numerical computations must be performed on relatively large blocks of data. Numerical computation algorithms, such as those common in video encoding/decoding, often require results to be clipped to be within a specified range of values. For example, in video processing, a system will have a maximum pixel depth depending on the system's resolution. If the value of an intermediate calculation result, such as interpolation or other calculation, lies outside the maximum value the final result will have to be clipped to the saturation value, for example, the maximum pixel value. [0006] Clipping is typically implemented in software using a sequence of instructions that first test the intermediate value and then conditionally assign the final value, for example, if value>maximum, then value=maximum. Such a software clipping implementation incurs a high overhead due to the number of calculations required to test each value. The sequential nature of a software implementation makes it very difficult to be optimized in processors designed to exploit instruction level parallelism, such as, for example, SISD reduced instruction set (RISC) machines or very long instruction word (VLIW) machines. Some processors do implement clipping at the hardware level using specialized processor instructions, however, the clipping ranges of these instructions are fixed to some value, typically a power of two. SUMMARY OF THE INVENTION [0007] Thus, there exists a need for a SIMD microprocessor architecture that ameliorates at least some of the above-noted deficiencies of conventional systems. At least one embodiment of the invention may provide a parameterizable microprocessor clip instruction. The parameterizable microprocessor clip instruction according to this embodiment may comprise a destination register operand, a source register operand of a value to be clipped, and a second source operand containing the control parameter specifying the manner in which clipping is to be performed, wherein the control parameter comprises a range type and range specifier. It should be appreciated that in the context of a SIMD machine, the source operand containing the "value" to be clipped is really referring to the values to be clipped because a 128-bit register is used to hold 8 16-bit values to be clipped by a single instruction. [0008] Accordingly, at least one embodiment of the invention may provide a method of causing a microprocessor to perform a clip operation. The method according to this embodiment may comprise providing an assembly instruction to the microprocessor, the instruction comprising an input address, an output address and a controlling parameter, decoding the instruction with logic in the microprocessor, retrieving a data input from the input address, determining a specific clip operation based on the controlling parameter, performing the clip operation on the data input, and writing the result to output address. [0009] Another embodiment of the invention may provide a method of performing a clip operation with a single parameterizable assembly language-based clip instruction executing on a microprocessor. The method of performing a clip operation with a single parameterizable assembly language-based clip instruction executing on a microprocessor may comprise specifying a source address of a data input, a destination address of a clipped output and a controlling parameter in a single instruction, obtaining the data input at the source address, performing the clip operation on the data input in accordance with the controlling parameter, and storing the result at the destination address. [0010] At least one other embodiment of the invention may provide a parameterizable assembly language program instruction for performing a clip operation in a video processing application. The parameterizable assembly language program instruction according to this embodiment may comprise an instruction name for a particular microprocessor instruction, a first instruction input operand comprising a destination register address to write an instruction result, a second instruction input operand comprising a source register address containing a value to be clipped, and a third instruction input operand comprising a controlling parameter. [0011] These and other embodiments and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS [0012] In order to facilitate a fuller understanding of the present disclosure, reference is now made to the accompanying drawings, in which like elements are referenced with like numerals. These drawings should not be construed as limiting the present disclosure, but are intended to be exemplary only. [0013] FIG. 1 is a diagram illustrating the components of a parameterizable clip instruction for either SISD or SIMD processor architectures according to at least one embodiment of the invention; [0014] FIG. 2 illustrates the format of a 32-bit parameter input to the parameterizable clip instruction of FIG. 1 according to at least one embodiment of the invention; [0015] FIG. 3 is a table illustrating the ways in which the parameters of the parameterizable clip instruction may be specified; and [0016] FIG. 4 is a flow chart of an exemplary method of performing a clip operation with a parameterizable clip instruction according to at least one embodiment of the invention. DETAILED DESCRIPTION [0017] The following description is intended to convey a thorough understanding of the embodiments described by providing a number of specific embodiments and details involving microprocessor architecture and systems and methods for performing clip operations with a parameterizable clip instruction. It should be appreciated, however, that the present invention is not limited to these specific embodiments and details, which are exemplary only. It is further understood that one possessing ordinary skill in the art, in light of known systems and methods, would appreciate the use of the invention for its intended purposes and benefits in any number of alternative embodiments, depending upon specific design and other needs. [0018] Referring now to FIG. 1, a diagram illustrating the components of a parameterizable clip instruction for either SISD or SIMD processor architectures according to at least one embodiment of the invention is provided. As discussed above, algorithms in numerical computations, such as those common in video encoding/decoding, often require results to be clipped to be within a specified range of values. For example, in video processing, a system will have a maximum pixel depth depending on the system's resolution. If the value of an intermediate calculation result, such as an interpolation or other calculation lies outside the maximum value the final result will have to be clipped to a saturation value, for example, the maximum pixel value. Continue reading... Full patent description for Parameterizable clip instruction and method of performing a clip operation using the same Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Parameterizable clip instruction and method of performing a clip operation using the same patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Parameterizable clip instruction and method of performing a clip operation using the same or other areas of interest. ### Previous Patent Application: Method and apparatus for early load retirement in a processor system Next Patent Application: Mixed mode floating-point pipeline with extended functions Industry Class: Electrical computers and digital processing systems: processing architectures and instruction processing (e.g., processors) ### FreshPatents.com Support Thank you for viewing the Parameterizable clip instruction and method of performing a clip operation using the same patent info. IP-related news and info Results in 0.36422 seconds Other interesting Feshpatents.com categories: Qualcomm , Schering-Plough , Schlumberger , Seagate , Siemens , Texas Instruments , |
||