# US 11,451,241 B2 · Setting values of portions of registers based on bit values

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,451,241 B2
- Document ID: US11451241B2
- Status: Granted
- Kind: B2
- Application number: 15/842,027
- Filed: 2017-12-14
- Published: 2019-06-20
- Granted: 2022-09-20
- Earliest claimed: 2017-12-14
- Assignees: Advanced Micro Devices, Inc.
- Applicants: Advanced Micro Devices, Inc.
- Inventors: Erik Swanson; Sneha V. Desai; Michael Estlick
- Web page: https://patentgrep.com/patent/US11451241B2

## CPC

- H03M 7/20: Conversion to or from n-out-of-m codes
- G06F 12/0891: using clearing, invalidating or resetting means
- G06F 16/166: {File name conversion}
- G06F 16/90339: {by using parallel associative memories or content-addressable memories}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A processor employs a set of bits to indicate values of portions of registers of a register file. In response to a specified instruction indicating an expected change of instruction types to be executed, the processor sets one or more of the bits and, for subsequent instructions, interprets corresponding portions of the registers as having a specified value (e.g., zero). By employing the set of bits to set the values of the register portions, rather than setting the individual portions of the registers to the specified value, the processor conserves processor resources (e.g., power) when the processor transitions between executing instructions of different types.

## Claims

### Claim 1

A method, comprising:
receiving, at a processor, a first instruction to assign a first portion of a first register a zero value, the first portion of the first register storing a first value when the first instruction is received, wherein the first value is a non-zero value;
in response to the first instruction, setting a first flag of the processor to a first state and maintaining the first value at the processor, whereby the first flag indicates that the first portion of the first register is assigned the zero value while storing the first value; and
in response to a second instruction, reading a second portion of the first register while suppressing transfer of the first portion of the first register to a memory responsive to the first flag of the processor having the first state.

### Claim 2 (depends on 1)

The method of claim 1, wherein maintaining the first value at the processor comprises maintaining the first value at the first portion of the first register.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
transferring the first value to a retire queue at an instruction pipeline of the processor.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
in response to the first instruction, setting a second flag of the processor to the first state and maintaining at the processor a second value stored at a first portion of a second register; and
in response to the second instruction, suppressing transfer of the first portion of the second register responsive to the second flag of the processor having the first state.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
in response to the second instruction, suppressing transfer of a first portion of a second register responsive to the first flag of the processor having the first state.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
in response to the first flag having the first state, setting a first portion of an architectural register of the processor to the zero value.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first instruction is a VZEROUPPER instruction.

### Claim 8

A method, comprising:
assigning a first architectural register of a processor to a first physical register;
receiving, at the processor, a first instruction to assign a portion of the first architectural register a zero value;
in response to the first instruction, setting a first flag of the processor to a first state and maintaining a first value at the first physical register different than the zero value, whereby the first flag indicates that the portion of the first architectural register is assigned the zero value while storing the first value; and
in response to the first flag being set, maintaining the assignment of the first architectural register to the first physical register; and
in response to a second instruction, reading a second portion of the first architectural register while suppressing transfer of the first value stored at the portion of the first architectural register to a memory.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
in response to the first instruction, transferring the first flag to a retire queue of the processor.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
in response to the first flag being set, setting portions of each of a plurality of registers to the zero value and maintaining architectural registers assigned to the plurality of registers.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
in response to the first flag being set, executing an operation at an execution unit of the processor as if the portion of the first physical register stored the zero value.

### Claim 12 (depends on 8)

The method of claim 8, wherein the first instruction is a VZEROUPPER instruction.

### Claim 13

A processor, comprising:
a register file comprising a first register;
a first flag corresponding to the first register, the first flag configured to indicate if a first portion of the first register is assigned a zero value different than a non-zero value stored at the first register; and
a set of execution units configured to:
set the first flag to a first state in response to a first instruction; and
in response to a second instruction reading a second portion of the first register different than the first portion while suppressing transfer of the first portion of the first register to a memory responsive to the first flag of the processor having the first state.

### Claim 14 (depends on 13)

The processor of claim 13, wherein the set of execution units is configured to maintain a first value at the first portion of the first register in response to the first instruction.

### Claim 15 (depends on 14)

The processor of claim 14, wherein the register file is configured to transfer the first value to a retire queue at an instruction pipeline of the processor.

### Claim 16 (depends on 13)

The processor of claim 13, further comprising:
a second flag configured to indicate if a first portion of a second register contains the zero value.

### Claim 17 (depends on 13)

The processor of claim 13, further comprising:
a register rename module configured to, in response to the first flag having the first state, set a first portion of an architectural register to the zero value.

### Claim 18 (depends on 13)

The processor of claim 13, wherein the first instruction is a VZEROUPPER instruction.
