IP Library Granted Patent US 7,487,274
Granted Patent B2
US 7,487,274 · App. 11/461,445 · Granted Feb 3, 2009

Method and apparatus for generating unique identification numbers for PCI express transactions with substantially increased performance

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,487,274
App. No.
11/461,445
Granted
Feb 3, 2009
Kind
B2
Abstract

A method and apparatus for generating identification numbers for PCI Express that provides unique generation and substantially increased system performance. A system having a PCI Express fabric and PCI devices connected thereto generates unique TAG identification numbers for transactions with substantially increased performance. The system generates and prepares up to three available TAG IDs in advance, before a request is granted. When a completion-required request receives a grant, it picks up the TAG ID from the storage rather than generating it on the fly. This enables the system to process back-to-back TLP requests without any dead cycles.

Claims (58)

1. A system for generating unique TAG IDs for back-to-back TLPs operating in a module within a PCI Express architecture, said system comprising:

a Storage Module that stores available TAG IDs and corresponding FLAG bits;

a NEXT TAG Module configured to analyze the FLAG bits in the Storage Module;

a Prefetch Register that stores a unique TAG ID before it is sent to a selected requesting entity;

a FIFO Module having two storage layers such that it may simultaneously store a first TAG ID and a second TAG ID; and

a Prefetch Logic Module that is configured to determine whether the FIFO Module is storing a first TAG ID and configured to read the first TAG ID from the FIFO module if the FIFO module is not empty;

wherein the NEXT TAG Module is configured to select a next available TAG ID in the Storage Module and write said next available TAG ID to the FIFO Module.

2. The system according to claim 1 , wherein the Prefetch Logic Module is further configured to determine if the Prefetch Register is currently storing a TAG ID.

3. The system according to claim 2 , wherein the Prefetch Logic Module is further configured to write said first TAG ID to the Prefetch Register if said Prefetch Register is not currently storing a TAG ID.

4. The system according to claim 3 , wherein the Prefetch Logic Module is further configured to write said first TAG ID to the Prefetch Register when a processed TLP has not been nullified.

5. The system according to claim 1 , wherein the NEXT TAG Module sets a FLAG bit in the Storage Module, and wherein said FLAG bit corresponds to said next available TAG ID.

6. The system according to claim 1 , wherein the NEXT TAG Module is further configured to determine if the FIFO Module is currently storing two TAG IDs.

7. A system for generating unique TAG IDs for back-to-back TLPs operating in a module within a PCI Express architecture, said system comprising:

a Storage Module that stores available TAG IDs and corresponding FLAG bits;

a NEXT TAG Module configured to analyze the FLAG bits in the Storage Module;

a Prefetch Register that stores a unique TAG ID before it is sent to a selected requesting entity;

a FIFO Module having two storage layers such that it may simultaneously store a first TAG ID and a second TAG ID; and

a Tag Retire Module that is configured to clear a FLAG bit for an available TAG ID in the Storage Module;

wherein the NEXT TAG Module is configured to select a next available TAG ID in the Storage Module and write said next available TAG ID to the FIFO Module.

8. The system according to claim 7 , wherein the Tag Retire Module is further configured to clear a FLAG bit that corresponds to a TAG ID of a completed TLP.

9. A system for generating unique TAG IDs, said system comprising:

a First Storage Module that stores available TAG IDs and corresponding FLAG bits;

a Second Storage Module having two storage layers such that it may simultaneously store a first TAG ID and a second TAG ID, and that is configured to read in an available TAG ID when the Second Storage Module is not storing two TAG IDs;

a Prefetch Register that stores a unique TAG ID before it is sent to a selected requesting entity; and

a Prefetch Logic Module that is configured to set a TAG ID of the Prefetch Register when said Prefetch Register is storing the unique TAG ID and the unique TAG ID is available for a requesting entity,

wherein the Prefetch Logic Module is further configured to store the first TAG ID when a communication request of a requesting entity has been granted.

10. A system for generating unique TAG IDs, said system comprising:

a First Storage Module that stores available TAG IDs and corresponding FLAG bits;

a Second Storage Module having two storage layers such that it may simultaneously store a first TAG ID and a second TAG ID;

a Prefetch Register that stores a unique TAG ID before it is sent to a selected requesting entity;

a Prefetch Logic Module that is configured to set a TAG ID of the Prefetch Register when said Prefetch Register is storing the unique TAG ID and the unique TAG ID is available for a requesting entity; and

a NEXT TAG Module that is configured to:

analyze the FLAG bits in the First Storage Module;

select a next available TAG ID in the First Storage Module; and

write said next available TAG ID to the Second Storage Module if the Second Storage Module is not storing two TAG IDs.

11. A method for generating unique TAG IDs for back-to-back TLPs, said method comprising the steps of:

storing a first and second TAG ID in a storage unit, wherein the first and second TAG IDs have unique values;

routing the first TAG ID to a prefetch register if the prefetch register is empty;

generating a new TAG ID, wherein the new TAG ID has a unique value; and

writing the new TAG ID to the storage unit when said storage unit is not already storing two TAG Ids;

wherein said routing step further comprises reading the first TAG ID from the storage unit during a last processing cycle of a TLP, and writing the first TAG ID to the prefetch register.

12. The method of claim 11 , further comprising the step of clearing a FLAG bit in the prefetch register if the storage unit is empty.

13. The method of claim 11 , further comprising the steps of reusing the first TAG ID when a TLP is nullified.

14. A method for generating unique TAG IDs for back-to-back TLPs, said method comprising the steps of:

storing a first and second TAG ID in a storage unit, wherein the first and second TAG IDs have unique values;

routing the first TAG ID to a prefetch register if the prefetch register is empty;

generating a new TAG ID, wherein the new TAG ID has a unique value; and

writing the new TAG ID to the storage unit when said storage unit is not already storing two TAG Ids;

wherein said generating step further comprises:

storing a plurality of TAG IDs in a storage space;

storing a plurality of FLAG bits in the storage space, wherein each of said plurality of TAG IDs corresponds to a FLAG bit;

identifying an available TAG ID by analyzing the FLAG bits in the storage space;

setting a FLAG bit of the available TAG ID; and

writing the available TAG ID to a NEXT TAG Module.

15. The method of claim 14 , further comprising the steps of:

receiving a completion TLP;

identifying a retired TAG ID in the storage space that corresponds to a TAG ID of the completion TLP; and

clearing a FLAG bit of the retired TAG ID.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2023
From: RAMBUS INC.
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 065017/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2016
From: SEMTECH CORPORATION
To: RAMBUS INC
Reel/Frame 039435/0798 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 5, 2016
From: HSBC BANK USA, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: SEMTECH CORPORATION; SEMTECH NEW YORK CORPORATION; SIERRA MONOLITHICS, INC.
Reel/Frame 039595/0388 →
RELEASE OF SECURITY INTEREST Recorded May 2, 2013
From: JEFFERIES FINANCE LLC
To: SEMTECH CORPORATION; SEMTECH NEW YORK CORPORATION; SIERRA MONOLITHICS, INC.
Reel/Frame 030341/0059 →
SECURITY AGREEMENT Recorded May 2, 2013
From: SEMTECH CORPORATION; SEMTECH NEW YORK CORPORATION; SIERRA MONOLITHICS, INC.
To: HSBC BANK USA, NATIONAL ASSOCIATION
Reel/Frame 030341/0099 →
GRANT OF SECURITY INTEREST Recorded Dec 18, 2012
From: SEMTECH CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 029495/0347 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2012
From: GENNUM US LIMITED (F/K/A/ ASIC ARCHITECT, INC.)
To: SEMTECH CORPORATION
Reel/Frame 029092/0200 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2008
From: MISHRA, KISHORE KUMAR; MOHANTY, PURNA
To: ASIC ARCHITECT, INC.
Reel/Frame 022025/0575 →