Apparatus for generating a valid mask
AssigneeAdvanced Micro Devices, Inc.
InventorsThang M. Tran, Rammohan Narayan, Shane Southard
Life of this patent
Estimating the term…
Abstract
A valid mask generator comprising a series of mask generation blocks. Each block generates a predetermined number of valid mask bits given a predetermined number of start pointer bits and end bits, wherein said predetermined number of valid mask bits generated by each block is less than the total number of bits in the valid mask. The series of mask generation blocks may be connected in series, wherein each block outputs a carry-out signal, and wherein each block receives the carry-out signal from the node before it as a carry-in signal. A method for generating a valid mask from a start pointer and a plurality of end bits is also contemplated.
Claims19
An apparatus for generating a valid mask from a start pointer and a plurality of end bits comprising:
- a plurality of blocks, wherein said plurality of blocks are coupled in series, and wherein each block comprises:
- a series of NOR gates, wherein each NOR gate receives as inputs one bit from said start pointer and one bit from said plurality of end bits;
- a series of nodes, wherein said series of nodes has a first node and a last node;
- a series of pass transistors, wherein each pass transistor connects two of said series of nodes in series, wherein each pass transistor is controlled by the output of one of said series of NOR gates;
- a series of discharge transistors, wherein one discharge transistor is connected to each of said series of nodes, wherein each discharge transistor is controlled by one of said plurality of end bits;
- and
- a series of valid mask bit outputs, wherein each valid mask bit output is connected to one of said series of nodes.
A microprocessor comprising:
- an instruction cache configured to receive and store instruction bytes, start pointer bits, and end bits;
- and
- a valid mask generator configured to generate valid masks usable to mask instructions formed by said instruction bytes, wherein said valid mask generator comprises:
- a series of mask generation blocks, wherein each block receives a predetermined number of said start pointer bits and said end bits from said instruction cache, wherein each block generates a predetermined number of valid mask bits using said start pointer bits and said end bits, wherein said predetermined number of valid mask bits is less than the total number of bits in the valid bit mask.
A method for generating a valid mask from a start pointer and a plurality of end bits comprising:
- precharging a series of nodes to an asserted state, wherein said nodes are electrically connected in series by a plurality of transistors, wherein each node has an inverted output that outputs one bit of said valid mask, wherein each node corresponds to one of said plurality of end bits and one particular bit of said start pointer;
- electrically isolating the nodes between the start pointer and a first asserted one of said plurality of end bits from the remaining nodes by deactivating one or more of said plurality of transistors;
- and
- discharging all nodes corresponding to an asserted end bit, wherein said discharging also discharges all nodes that are electrically connected to a discharging node.
A method for generating a valid mask, the method comprising:
- precharging a plurality of nodes to an asserted voltage level with a precharge signal, wherein each node is connected in series to another node by a transistor, wherein each node outputs one bit of said valid mask, and wherein each node has a voltage level controlled by one of a plurality of end bits, one of a plurality of start pointer bits, and said precharge signal;
- deactivating one or more of said plurality of transistors to electrically isolate any nodes between a first asserted one of said plurality start pointer bit and a first asserted one of said plurality of end bits from the remaining nodes;
- discharging all nodes controlled by an asserted end bit and all nodes connected thereto by an active one of said transistors, wherein said method is performed in parallel in a plurality of blocks, wherein each block comprises a different instance of said plurality of nodes;
- generating a first carry-out signal based on the voltage level of a last node in said block;
- receiving a second carry-out signal in one block from one of said plurality of blocks as an input;
- and
- discharging all nodes in said plurality of nodes if said second carry-out signal is asserted and none of said start pointer bits are asserted.
Dependencies are inferred from the claim text.