Browse Prior Art Database

Method and Apparatus to Allow for the Efficient Execution of a Vector Instruction of Zero Length as Determined at Runtime

IP.com Disclosure Number: IPCOM000244877D
Publication Date: 2016-Jan-25
Document File: 1 page(s) / 48K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method to add a special value of zero to the iteration count of a vector instruction, in addition to the valid values of 1->NV. Thus, if the iteration count is zero, then the evaluation of the vector instruction is skipped and therefore costs only one cycle.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 63% of the total text.

Page 01 of 1

Method and Apparatus to Allow for the Efficient Execution of a Vector Instruction of Zero Length as Determined at Runtime

The problem addressed herein is the lack of a meaningful value of zero for the vector instruction iteration counter. Valid counter values are always defined to be 1->NV,

where NV is the vector register length. If for some reason the desired effective counter value (as determined at runtime) should be zero, then the compiler needs to generate extra instructions that must always be executed at runtime, thereby decreasing performance.

Known solutions include branching and masking. Branching (IF/ELSE condition) involves the compiler introducing checking for the effective counter value before issuing every vector instruction. At runtime this can add approximately a minimum of two extra cycles per vector instruction (and a lot more in the case of a mis-prediction), independent of the actual iteration counter value and preclude the issuing of back-to-back vector instructions. Masking involves predicating each iteration of the execution of a vector instruction with the value of a precalculated mask register (true=1 or false=0). When all mask register values are zero, this technique proves costly, as it still requires NV cycles to produce no useful results.

The novel solution eliminates the need for extra instructions that must be executed , thus lowering the overhead. The proposed implementation adds a special value of zero to the iteration count of...