← Back to Patent Explorer
US5875343A Expired / Lapsed US ⏱️ 0.0 years remaining

Employing request queues and completion queues between main processors and I/O processors wherein a main processor is interrupted when a certain number of completion messages are present in its completion queue

Assignee: Avago Technologies International Sales Pte Ltd
•
Filing: 1997-03-20
•
Granted: 1999-02-23
•
Expires: 2017-03-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Apparatus and associated methods for improving I/O performance in a computing system which includes one or more MPUs and one or more IOPs. I/O requests are queued by a requesting MPU in a memory shared with one or more IOPs. Each IOP is associated with a queue. Each IOP may continue processing queued I/O requests after completing processing on an earlier request. In addition, each MPU is associated with a queue shared with the IOPs. When an IOP completes processing of an I/O request, a completion message is added to the requesting MPU's queue and an interrupt is generated for that MPU. The MPU services all completion messages in its queue when the interrupt is processed. A threshold value is associated with each MPU queue. The threshold value indicates the minimum number of completed I/O requests required before an interrupt request is generated to the MPU. The threshold value for each MPU may be tuned to permit the computing system to balance the need for rapid I/O response time with the need for reduced interrupt overhead processing in the MPU. Various physical embodiments of the invention are disclosed wherein the queue is located in either a shared memory or in a register file. Additionally, various embodiments separate the queue used to store new I/O requests from the queue used to store completion messages while other embodiments merge the two queuing functions into a single queue where each entry contains an I/O request with a completion status field.

Inventors

  • 👤 Charles D. Binford
  • 👤 Michael J. Gallagher
  • 👤 Craig C. McCombs

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 23:53
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/163; G06F13/00; G06F13/10; G06F13/12; G06F13/124; G06F13/126

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 208 words
In a computing system having a plurality of main processing units communicating with a plurality of I/O sub-processors, an I/O interface system comprising: a request queue corresponding to each of said I/O sub-processors; a completion queue corresponding to each of said main processing units; means, in each of said main processing units, for generating I/O requests for processing by one of said I/O sub-processors and for adding said I/O requests to the request queues corresponding to said one of said I/O sub-processors; means, in each of said I/O sub-processors, for removing I/O requests from the request queue corresponding to each of said I/O sub-processors and for generating a completion message corresponding to each of said I/O requests removed from said request queue, said completion message further being added to said completion queue corresponding to one of said main processing units; interrupt means in each of said I/O sub-processors for generating and applying an interrupt request signal to any of said main processing units; and a queue depth threshold value corresponding to each of said completion queues, wherein each of said interrupt means generates said interrupt request signal when the number of completion messages added to the corresponding completion queue is greater than the corresponding queue death threshold value.
Claim 2
Dependent Claim 208 words
In a computing system having a plurality of main processing units communicating with a plurality of I/O sub-processors, an I/O interface system comprising: a request queue corresponding to each of said I/O sub-processors; a completion queue corresponding to each of said main processing units; means, in each of said main processing units, for generating I/O requests for processing by one of said I/O sub-processors and for adding said I/O requests to the request queues corresponding to said one of said I/O sub-processors; means, in each of said I/O sub-processors, for removing I/O requests from the request queue corresponding to each of said I/O sub-processors and for generating a completion message corresponding to each of said I/O requests removed from said request queue, said completion message further being added to said completion queue corresponding to one of said main processing units; interrupt means in each of said I/O sub-processors for generating and applying an interrupt request signal to any of said main processing units; and a queue depth threshold value corresponding to each of said completion queues, wherein each of said interrupt means generates said interrupt request signal when the number of completion messages added to the corresponding completion queue is greater than the corresponding queue death threshold value.
Claim 3
Dependent Claim 22 words
The I/O interface system of claim 1 wherein said queue depth threshold value is writable by each of said main processing units.
Claim 4
Dependent Claim 35 words
The I/O interface system of claim 1 wherein each said interrupt means generates said interrupt request signal when all said I/O requests are removed from the request queue corresponding to each of said I/O sub-processors.
Claim 5
Dependent Claim 29 words
The I/O interface system of claim 1 wherein each of said interrupt means generates said interrupt request signal when said completion message is added to the corresponding completion queue.
Claim 6
Dependent Claim 56 words
The I/O interface system of claim 1 further comprising: request semaphore means corresponding to each of said request queues for enforcing mutual exclusion of critical section operations on the corresponding request queue; and completion semaphore means corresponding to each of said completion queues for enforcing mutual exclusion of critical section operation on the corresponding completion queue.
Claim 7
Dependent Claim 32 words
The I/O interface system of claim 1 wherein said request queue and said completion queue reside in a shared memory connected to said main processing units and connected to said I/O sub-processors.
Claim 8
Dependent Claim 24 words
The I/O interface system of claim 6 wherein a said request queue and a said completion queue are combined within a single queue structure.
Claim 9
Dependent Claim 24 words
The I/O interface system of claim 1 wherein a said request queue and a said completion queue reside in each of said I/O sub-processors.
Claim 10
Dependent Claim 24 words
The I/O interface system of claim 8 wherein a said request queue and a said completion queue are combined within a single queue structure.
Claim 11
Dependent Claim 157 words
In a computing system having a plurality of main processing units communicating with a plurality of I/O sub-processors, an I/O interface method comprising: generating, within each said main processing unit, I/O requests for processing by one of said I/O sub-processors; adding said I/O requests to a request queue corresponding to said one of said I/O sub-processors; and removing, within each said I/O sub-processor, I/O requests from the request queue corresponding to each of said I/O sub-processors; generating, within each said I/O sub-processor, a completion message corresponding to each of said I/O requests removed from said request queue; adding said completion message to said completion queue corresponding to one of said main processing units; generating an interrupt request signal; applying said interrupt request signal to any of said main processing units; and generating said interrupt request signal when the number of completion messages added to the corresponding completion queue is greater than a corresponding queue depth threshold value.
Claim 12
Dependent Claim 157 words
In a computing system having a plurality of main processing units communicating with a plurality of I/O sub-processors, an I/O interface method comprising: generating, within each said main processing unit, I/O requests for processing by one of said I/O sub-processors; adding said I/O requests to a request queue corresponding to said one of said I/O sub-processors; and removing, within each said I/O sub-processor, I/O requests from the request queue corresponding to each of said I/O sub-processors; generating, within each said I/O sub-processor, a completion message corresponding to each of said I/O requests removed from said request queue; adding said completion message to said completion queue corresponding to one of said main processing units; generating an interrupt request signal; applying said interrupt request signal to any of said main processing units; and generating said interrupt request signal when the number of completion messages added to the corresponding completion queue is greater than a corresponding queue depth threshold value.
Claim 13
Dependent Claim 32 words
The I/O interface method of claim 10 further comprising the step of: writing said queue depth variable wherein said queue depth threshold value is writable by each of said main processing units.
Claim 14
Dependent Claim 151 words
In a computing system having a plurality of main processing units communicating with a plurality of I/O sub-processors, an I/O interface method comprising: a) generating a list I/O requests within at least one of said plurality of main processing units; b) adding said list to a request queue associated with at least one of said plurality of I/O sub-processors; c) processing, within said at least one of said plurality of I/O sub-processors, an I/O request in said request queue; d) queueing a completion message in a completion queue in response to said processing wherein said completion message indicates completion status of said processing of said I/O request; e) repeating steps c) and d) for each I/O request in said request queue; and f) interrupting said at least one of said plurality of main processors in response to the number of completion messages in said completion queue exceeding a predetermined threshold value.
Claim 15
Dependent Claim 151 words
In a computing system having a plurality of main processing units communicating with a plurality of I/O sub-processors, an I/O interface method comprising: a) generating a list I/O requests within at least one of said plurality of main processing units; b) adding said list to a request queue associated with at least one of said plurality of I/O sub-processors; c) processing, within said at least one of said plurality of I/O sub-processors, an I/O request in said request queue; d) queueing a completion message in a completion queue in response to said processing wherein said completion message indicates completion status of said processing of said I/O request; e) repeating steps c) and d) for each I/O request in said request queue; and f) interrupting said at least one of said plurality of main processors in response to the number of completion messages in said completion queue exceeding a predetermined threshold value.
Claim 16
Dependent Claim 45 words
The method of claim 12 further comprising the step of: processing the completion messages in said completion queue within said at least one of said plurality of main processors in response to the interrupting of said at least one of said plurality of main processors.
Claim 17
Dependent Claim 48 words
The method of claim 13 wherein the step of processing the completion messages includes the step of: processing no more than a predetermined number of the completion messages in said completion queue in response to the interrupting of said at least one of said plurality of main processors.
Claim 18
Dependent Claim 44 words
The method of claim 12 wherein steps a) and b) are operable with said at least one of said plurality of main processors substantially concurrently with operation of steps c) and d) operable within said at least one of said plurality of I/O sub-processors.
Claim 19
Dependent Claim 95 words
The method of claim 15 wherein the step of adding includes the steps of: locking a semaphore prior to adding said list to said request queue; and unlocking said semaphore in response to completion of addition of said list to said request queue, and wherein the step of processing the I/O requests includes the steps of: locking said semaphore prior to adding said list to said request queue; and removing a next I/O request from said request queue; and unlocking said semaphore in response to removal of said next I/O request from said request queue.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-02-22 2002-08-24 2003-02-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-02-22 2006-08-24 2007-02-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-02-22 2010-08-24 2011-02-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag