Patent ID: 7937574
Filing Date: 2011-05-03
Classification: G06F

Abstract:
1. A method comprising: stalling issuance of one or more microcode operations forming a body of a loop in a microcode routine, the stalling performed at a microcode unit, wherein each read of a microcode memory storing the microcode routine supplies a plurality of microcode operations and a sequence field, and wherein the sequence field comprises a loop control field and a target field, and wherein the loop control field is coded to one of a plurality of encodings, and wherein the plurality of encodings include: a first encoding that indicates sequential execution, a second encoding that indicates the stalling, and a plurality of branch encodings; and wherein the plurality of branch encodings each specify a different loop count test to determine whether or not to branch to a beginning of the loop, and wherein the target field specifies an address of the beginning of the loop when the loop control field is coded to one of the plurality of branch encodings, and wherein the second encoding in a first sequence field associated with the microcode routine causes the stalling; receiving a loop counter value in the microcode unit indicating a number of iterations of the loop that are to be executed; terminating the stalling responsive to the receiving and issuing, from the microcode unit, the microcode operations forming the body of the loop responsive to the receiving; and determining whether to branch to the beginning of the loop for another iteration or to exit the loop responsive to the loop counter value and a second sequence field associated with the microcode operations forming the body, wherein the loop control field in the second sequence field is encoded to one of the plurality of branch encodings to indicate the loop counter test that determines whether or not to branch to the beginning of the loop, and wherein the microcode routine excludes a branch microcode operation to branch to the beginning of the loop, and wherein branching to the beginning of the loop or exiting the loop is controlled directly by the microcode unit using the second sequence field and the loop counter value.