IP Library Granted Patent US 7,606,998
Granted Patent B2
US 7,606,998 · App. 11/002,728 · Granted Oct 20, 2009

Store instruction ordering for multi-core 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,606,998
App. No.
11/002,728
Granted
Oct 20, 2009
Kind
B2
Abstract

A method and apparatus for minimizing stalls in a pipelined processor is provided. Instructions in an out-of-order instruction scheduler are executed in order without stalling the pipeline by sending store data to external memory through an ordering queue.

Claims (35)

1. A processor comprising:

a write buffer having a plurality of write buffer entries for storing data to be stored in external memory; and

a system interface, the system interface comprising:

a first logic circuit that sends data from write buffer entries to external memory; and

a second logic circuit which upon detecting execution of a store ordering instruction ensures that earlier stores complete before subsequent stores complete, the first and second logic circuits further configured to prevent overflow of an ordering queue and to eliminate stalling of any store ordering instructions at the system interface.

2. The processor of claim 1 , wherein the second logic circuit comprises ordering queue logic that ensures that the write buffer addresses are sent by monitoring a commit indicator returned from external memory for each write buffer address.

3. The processor of claim 1 , wherein upon detecting active write buffer entries in the write buffer, the system interface allocates an ordering queue entry and identifies the active write buffer entries in the ordering queue entry.

4. The processor of claim 1 , wherein upon detecting no active write buffer entries in the write buffer and at least one ordering queue entry in the ordering queue, the system interface sets a store ordering instruction execution indicator in a last ordering queue entry.

5. The processor of claim 1 , wherein upon detecting no active write buffer entries in the write buffer and no ordering queue entries in the ordering queue, the system interface allocates an ordering queue entry and sets a store ordering instruction execution indicator in the allocated ordering queue entry.

6. The processor of claim 1 wherein the write buffer has N write buffer entries and the ordering queue has N+1 ordering queue entries.

7. The processor of claim 6 , wherein N=16.

8. The processor of claim 1 , wherein the write buffer entry includes a buffer for storing data to be stored in external memory and a mask having a bit corresponding to each byte in the buffer.

9. The processor of claim 1 , wherein an ordering queue entry includes a store ordering instruction execution indicator and an ordering mask having a bit corresponding to each write buffer entry.

10. A method for ordering store data in a processor comprising:

storing data to be stored in external memory in a write buffer entry in a write buffer;

sending data stored in the write buffer to the external memory; and

upon detecting execution of a store ordering instruction, ensuring that earlier stores complete before subsequent stores complete, preventing overflow of an ordering queue and eliminating stalling of any store ordering instructions at a system interface of the processor.

11. The method of claim 10 , wherein ensuring comprises monitoring a commit indicator returned from external memory for each write buffer address.

12. The method of claim 10 further comprising:

upon detecting active write buffer entries in the write buffer, allocating an ordering queue entry in the ordering queue and identifying the active write buffer entries in the ordering queue entry.

13. The method of claim 10 further comprising:

upon detecting no active write buffer entries in the write buffer and at least one ordering queue entry in an ordering queue, setting a store ordering instruction execution indicator in a last ordering queue entry.

14. The method of claim 10 further comprising:

upon detecting no active write buffer entries in the write buffer and no ordering queue entries in the ordering queue, allocating an ordering queue entry and setting a store ordering instruction execution indicator in the allocated ordering queue entry.

15. The method of claim 10 , wherein the write buffer entry includes a buffer for storing data to be stored in external memory and a mask having a bit corresponding to each byte in the buffer.

16. The method of claim 10 , wherein an ordering queue entry in the ordering queue includes a store ordering instruction execution indicator and an ordering mask having a bit corresponding to each write buffer entry.

17. The method of claim 10 , wherein the write buffer has N write buffer entries and the ordering queue has N+1 ordering queue entries.

18. The method of claim 17 , wherein N=16.

19. A network services processor comprising:

cache memory; and

at least one processor core, the processor core comprising:

a write buffer having a plurality of write buffer entries for storing data to be stored in the cache memory; and

a system interface, the system interface comprising:

a first logic circuit sending data from write buffer entries to the cache memory; and

a second logic circuit which upon detecting execution of a store ordering instruction ensures that earlier stores complete before subsequent stores complete, the first and second logic circuits further configured to prevent overflow of an ordering queue and eliminating stalling of any store ordering instructions at the system interface.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
MERGER Recorded Jul 21, 2011
From: CAVIUM NETWORKS, INC.
To: CAVIUM, INC.
Reel/Frame 026632/0672 →
MERGER Recorded Mar 14, 2007
From: CAVIUM NETWORKS, A CALIFORNIA CORPORATION
To: CAVIUM NETWORKS, INC., A DELAWARE CORPORATION
Reel/Frame 019014/0174 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2005
From: ASHER, DAVID H.; KESSLER, RICHARD E.; LEE, YEN
To: CAVIUM NETWORKS
Reel/Frame 016930/0809 →