IP Library Granted Patent US 7,831,808
Granted Patent B2
US 7,831,808 · App. 11/961,914 · Granted Nov 9, 2010

Queue design system supporting dependency checking and issue for SIMD instructions within a general purpose processor

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,831,808
App. No.
11/961,914
Granted
Nov 9, 2010
Kind
B2
Abstract

A processor includes a general purpose (GP) unit adapted to receive and configured to execute GP instructions; and includes a single instruction multiple data (SIMD) unit adapted to receive and configured to execute SIMD instructions. An instruction unit comprises a first logic unit coupled to the GP unit and a second logic unit coupled to the SIMD unit, wherein SIMD instructions are processed subsequent to GP instructions. In the first logic unit a GP instruction with unresolved dependencies unconditionally causes subsequent SIMD instructions to stall, and an SIMD instruction with unresolved dependencies does not cause subsequent GP instructions to stall. The first logic unit resolves dependencies in GP instructions, provides dependency-free instructions to the GP unit, and provides SIMD instructions to the second logic unit. The second logic unit resolves dependencies in SIMD instructions and provides dependency-free instructions to the SIMD unit.

Claims (36)

1. A processor, comprising:

a general purpose (GP) unit adapted to receive GP instructions and configured to execute the GP instructions;

a single instruction multiple data (SIMD) unit adapted to receive SIMD instructions and configured to execute the SIMD instructions;

an instruction unit comprising a first logic unit coupled to the GP unit and a second logic unit coupled to the SIMD unit, wherein SIMD instructions are processed subsequent to GP instructions;

wherein the first logic unit is further configured such that a GP instruction with unresolved dependencies unconditionally causes subsequent SIMD instructions to stall, and an SIMD instruction with unresolved dependencies does not cause subsequent GP instructions to stall;

wherein the first logic unit is coupled to receive GP instructions and SIMD instructions and configured to:

decode the GP instructions and the SIMD instructions;

check the GP instructions for dependencies;

resolve any dependencies in the GP instructions;

provide the GP instructions that are free of dependencies to the GP unit; and

subsequent to providing the GP instructions that are free of dependencies to the GP unit, provide the SIMD instructions to the second logic unit when there are no remaining older GP instructions with dependencies;

wherein the first logic unit is not configured to check the SIMD instructions for dependencies; and

wherein the second logic unit is coupled to receive the SIMD instructions from the first logic unit and, subsequent to providing, by the first logic unit, the GP instructions that are free of dependencies to the GP unit, configured to:

check the SIMD instructions for dependencies;

resolve any dependencies in the SIMD instructions; and

provide the SIMD instructions that are free of dependencies to the SIMD unit.

2. The processor as recited in claim 1 , wherein the first logic unit is configured to stall the GP instructions and the SIMD instructions as necessary during the checking of the GP instructions for dependencies and the resolving of any dependencies in the GP instructions.

3. The processor as recited in claim 1 , wherein the first logic unit is configured to flush the GP instructions and the SIMD instructions as necessary to resolve any dependencies in the GP instructions.

4. The processor as recited in claim 1 , wherein the second logic unit is configured to stall the SIMD instructions as necessary during the checking of the SIMD instructions for dependencies and the resolving of any dependencies in the SIMD instructions.

5. The processor as recited in claim 1 , wherein the first logic unit is further configured to determine whether a received instruction is a GP instruction or a SIMD instruction.

6. The processor as recited in claim 1 , wherein the instruction unit further comprises front end logic coupled to receive GP instructions and SIMD instructions and to the first logic unit, and wherein the front end logic is configured to decode the GP instructions and the SIMD instructions and to provide the GP instructions and the SIMD instructions to the first logic unit.

7. The processor as recited in claim 6 , wherein the front end logic comprises a memory unit for storing instructions.

8. The processor as recited in claim 1 , further comprising:

an instruction controller coupled to the instruction unit and configured to control a flow of data into and out of the processor and to provide control signals to the instruction unit; and

a memory unit coupled to the instruction controller, the instruction unit, and the GP unit, and configured to store data.

9. The processor as recited in claim 8 , wherein the GP unit is configured to retrieve needed data from the memory unit during operation.

10. The processor as recited in claim 8 , wherein the data stored in the memory unit comprises instructions, and wherein the instruction unit is configured to retrieve instructions from the memory unit during operation.

11. The processor as recited in claim 8 , wherein the instruction controller is configured to provide signals to the memory unit to aid in the storage of data in, and the retrieval of data from, the memory unit.

12. The processor as recited in claim 1 , wherein the instruction unit further comprises a branch unit adapted to receive branch instructions and configured to handle the branch instructions, and wherein the first logic unit is coupled to receive GP instructions, SIMD instructions, and branch instructions, and is configured to:

decode the GP instructions and the SIMD instructions;

check the GP instructions for dependencies;

resolve any dependencies in the GP instructions;

provide the GP instructions that are free of dependencies to the GP unit;

subsequent to providing the GP instructions that are free of dependencies to the GP unit,

provide the SIMD instructions to the second logic unit; and

provide the branch instructions to the branch unit.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 027991/0435 →