IP Library Granted Patent US 7,051,175
Granted Patent B2
US 7,051,175 · App. 10/346,793 · Granted May 23, 2006

Techniques for improved transaction processing

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,051,175
App. No.
10/346,793
Granted
May 23, 2006
Kind
B2
Abstract

Performance improved transaction identification queue structures and techniques for implementing such structures. Specifically, a read queue structure and a dropped queue structure are provided in a host/data controller. Once the read queue structure is filled with read requests, any read requests corresponding to transactions that can be completed without retrieving data from main memory may be moved to the dropped queue structure. The dropped queue structure may provide substitute entrypoints for storage of subsequent read requests.

Claims (57)

1. A method of processing requests comprising the acts of:

checking each of a plurality of read requests stored in a read queue structure, wherein each of the plurality of read requests comprises a corresponding transaction identification number;

determining whether any of the plurality of read requests can be completed without accessing a main memory;

if any of the plurality of read requests can be completed without accessing the main memory, moving the corresponding read request to a dropped queue structure, wherein the act of moving the corresponding read request to the dropped queue structure comprises the act of de-asserting a reuse bit; and

for each of the plurality of read requests that can be completed without accessing the main memory, providing an entrypoint in the dropped queue structure to receive a subsequent read request, wherein each of the entrypoints in the dropped queue comprises a transaction identification number.

2. The method, as set forth in claim 1 , wherein the act of determining comprises the act of determining whether data from any of the plurality of read requests can be retrieved from cache memory.

3. The method, as set forth in claim 1 , comprising the act of when any of the plurality of read requests that are moved from the read queue structure to the dropped queue structure are completed, asserting the reuse bit.

4. A method of processing requests comprising the acts of:

checking each of a plurality of read requests stored in a read queue structure, wherein each of the plurality of read requests comprises a corresponding transaction identification number;

determining whether any of the plurality of read requests can be completed without accessing a main memory;

if any of the plurality of read requests can be completed without accessing the main memory, moving the corresponding read request to a dropped queue structure; and

for each of the plurality of read requests that can be completed without accessing the main memory, providing an entrypoint in the dropped queue structure to receive a subsequent read request, wherein each of the entrypoints in the dropped queue comprises a transaction identification number, wherein the act of providing the entrypoint in the dropped queue structure comprises the acts of:

receiving a subsequent read request;

storing the subsequent read request in the dropped queue structure;

assigning the subsequent read request a transaction identification number from the dropped queue structure; and

moving the assigned transaction identification number from the dropped queue structure to the read queue structure.

5. The method, as set forth in claim 4 , wherein the act of determining comprises the act of determining whether data from any of the plurality of read requests can be retrieved from cache memory.

6. The method, as set forth in claim 4 , wherein the act of moving the corresponding read request to the dropped queue structure comprises the act of de-asserting a reuse bit.

7. The method, as set forth in claim 6 , comprising the act of when any of the plurality of read requests that are moved from the read queue structure to the dropped queue structure are completed, asserting the reuse bit.

8. A method of processing requests comprising the acts of:

storing a plurality of read requests in a read queue structure, such that the read queue structure is full;

assigning a transaction identification number corresponding to each of the plurality of read requests in the read queue structure;

determining that at least one of the plurality of read requests can be completed without retrieving data corresponding to the at least one of the plurality of read requests from main memory;

dequeuing the transaction identification number corresponding to the at least one of the plurality of read requests from the read queue structure;

enqueuing the transaction identification number corresponding to the at least one of the plurality of read requests into a dropped queue structure, wherein enqueuing the transaction identification number comprises de-asserting a reuse bit in the corresponding transaction identification number; and

enqueuing a subsequent read request into the read queue structure.

9. The method, as set forth in claim 8 , wherein the act of determining comprises the act of determining whether data from any of the plurality of read requests can be retrieved from cache memory.

10. The method, as set forth in claim 8 , wherein the act of storing comprises the act of storing sixteen read requests in the read queue structure.

11. The method, as set forth in claim 8 , comprising the acts of:

retrieving the data corresponding to the at least one of the plurality of read requests from main memory; and

asserting the reuse bit in the corresponding transaction identification number.

12. A controller comprising:

a read queue structure comprising a plurality of first entrypoints, wherein each of the plurality of first entrypoints is configured to store a respective read request corresponding to requested data, and wherein each respective read request corresponds to one of a first type, wherein the corresponding requested data may be retrieved only from main memory, and a second type, wherein the corresponding requested data may be retrieved from a memory other than main memory; and

a dropped queue structure comprising a plurality of second entrypoints, wherein each of the plurality of second entrypoints is configured to store a respective read request corresponding to requested data when each of the plurality of first entrypoints contains a respective read request and at least one of the read requests stored in the respective first entrypoint comprises the second type of read request, and wherein each of the plurality of second entrypoints comprises a reuse bit that is configured to be asserted when the corresponding second entrypoint can be used to store a new read request.

13. The controller, as set forth in claim 12 , wherein the read queue structure comprises sixteen entrypoints.

14. The controller, as set forth in claim 12 , wherein the dropped queue structure comprises sixteen entrypoints.

15. The controller, as set forth in claim 12 , wherein each of the plurality of second entrypoints comprises a width of five bits and wherein one of the bits corresponds to the reuse bit that is configured to be asserted when the corresponding second entrypoint can be used to store a new read request.

16. The controller, as set forth in claim 12 , wherein the second type of read request comprises a read request having corresponding requested data that may be retrieved from a cache memory.

17. A system comprising:

a plurality of processors;

a main memory operably coupled to the plurality of processors and configured to store data; and

a host controller operably coupled between each of the plurality of processors and the main memory and comprising:

a read queue structure comprising a plurality of first entrypoints, wherein each of the plurality of first entrypoints is configured to store a respective read request corresponding to requested data, and wherein each respective read request corresponds to one of a first type, wherein the corresponding requested data may be retrieved only from main memory, and a second type, wherein the corresponding requested data may be retrieved from a memory other than main memory; and

a dropped queue structure comprising a plurality of second entrypoints, wherein each of the plurality of second entrypoints is configured to store a respective read request corresponding to requested data when each of the plurality of first entrypoints contains a respective read request and at least one of the read requests stored in the respective first entrypoint comprises the second type of read request, and wherein each of the plurality of second entrypoints comprises a reuse bit that is configured to be asserted when the corresponding second entrypoint can be used to store a new read request.

18. The system, as set forth in claim 17 , comprising:

a first processor bus having one or more of the plurality of processors coupled thereto;

a second processor bus having a different one or more of the plurality of processors coupled thereto; and

wherein the host controller comprises a first processor controller coupled to the first processor bus and a second processor controller coupled to the second processor bus, wherein each of the first and second processor controllers comprises each of a respective read queue structure and a respective dropped queue structure.

19. The system, as set forth in claim 17 , comprising:

an input/output bus;

one or more input/output devices coupled to the host controller via the input/output bus;

wherein the host controller comprises a first processor controller coupled to the input/output bus and wherein the first processor controller comprises each of a read queue structure and a dropped queue structure.

20. The system, as set forth in claim 17 , comprising cache memory and wherein the host controller comprises:

a memory controller configured to coordinate the exchange of data between the host controller and the main memory;

a tag controller configured to determine whether a read request comprises the first type or the second type; and

one or more processor controllers configured to coordinate the exchange of data between the host controller and one of an input/output device and one of the plurality of processors.

21. The system, as set forth in claim 17 , wherein the plurality of second entrypoints comprises sixteen entrypoints, wherein each of the plurality of second entrypoints comprises a width of five bits, and wherein one of the bits in each of the second entrypoints corresponds to the reuse bit that is configured to be asserted when the corresponding second entrypoint can be used to store a new read request.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: OT PATENT ESCROW, LLC
To: VALTRUS INNOVATIONS LIMITED
Reel/Frame 057650/0537 →
PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Recorded Jan 26, 2021
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP; HEWLETT PACKARD ENTERPRISE COMPANY
To: OT PATENT ESCROW, LLC
Reel/Frame 055269/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME FROM HEWLETT-PACKARD DEVELOPMENT COMPANY PREVIOUSLY RECORDED ON REEL 013815 FRAME 0589. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 2, 2020
From: VO, HAHN
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 052557/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →