Patent US6292855B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6292855B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method to allow hardware configurable data structures

Assignee: Avago Technologies International Sales Pte Ltd
•
Filing: 1998-12-18
•
Granted: 2001-09-18
•
Expires: 2018-12-18
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A set of registers are provided for a protocol engine driving I/O transactions requested by a host. A fixed set of defined data elements are determined for the protocol under which the I/O transaction is to be performed. Each register maps to a data structure base address or to a different data element offset or byte count. During initialization, the registers are programmed by an operating system device driver with offsets from a base address and byte counts for each data element within the defined set as those data elements are found within an operating system specific data structure for the I/O transaction, although data elements having a fixed size for each operating system may not require the byte count to be specified. For each I/O transaction requested, the base address in the host memory of the operating system specific data structure is programmed by the device driver into a register. The I/O protocol engine utilizes the base address together with the offset and byte count information to commence the requested I/O transaction. The base address is programmed by the device driver into the appropriate register on an each I/O basis, without requiring translation of the entire data structure. By permitting the hardware to be configured to effectively utilize the operating system data structure, the need for data structure translation is eliminated, CPU utilization is reduced, and increased I/O throughput is achieved.

Inventors

  • 👤 Russell A. Johnson
  • 👤 Andrew C. Brown
  • 👤 Stephen B. Johnson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 19:38
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/10

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 99 words
A method of employing hardware configurable data structures for an I/O transaction, comprising: storing offset and count information for an operating system data structure configuration employed in the I/O transaction within a plurality of storage locations; monitoring a base address storage location for a write of a base address to the base address storage location; responsive to detecting a write of a base address to the base address storage location, retrieving a data structure at the base address; and determining message data necessary to process the I/O transaction from the retrieved data structure utilizing the offset and count information.
Claim 2
Independent Claim 99 words
A method of employing hardware configurable data structures for an I/O transaction, comprising: storing offset and count information for an operating system data structure configuration employed in the I/O transaction within a plurality of storage locations; monitoring a base address storage location for a write of a base address to the base address storage location; responsive to detecting a write of a base address to the base address storage location, retrieving a data structure at the base address; and determining message data necessary to process the I/O transaction from the retrieved data structure utilizing the offset and count information.
Claim 3
Dependent Claim 43 words
The method of claim 1 , wherein the step of storing offset and count information for a data structure employed in the I/O transaction within a plurality of storage locations further comprises: storing a data offset for each parameter within the data structure.
Claim 4
Dependent Claim 47 words
The method of claim 1 , wherein the step of storing offset and count information for a data structure employed in the I/O transaction within a plurality of storage locations further comprises: storing a length offset and a length size for each parameter within the data structure.
Claim 5
Dependent Claim 118 words
The method of claim 1 , wherein the step of storing offset and count information for a data structure employed in the I/O transaction within a plurality of storage locations further comprises: storing a SCSI message out length offset, a SCSI message out length size, and a SCSI message out data offset within a first group of registers within the plurality of storage locations; storing a SCSI command descriptor block length offset, a SCSI command descriptor block length size, and a SCSI command descriptor block data offset within a second group of registers within the plurality of storage locations; storing a SCSI target LUN and ID within a third group of registers within the plurality of storage locations.
Claim 6
Dependent Claim 32 words
The method of claim 1 , wherein the step of retrieving a data structure at the base address further comprises: retrieving a data structure at the base address from a host memory.
Claim 7
Dependent Claim 49 words
The method of claim 1 , wherein the step of determining message data necessary to process the I/O transaction from the retrieved data structure utilizing the offset and count information further comprises: determining a message data content and a corresponding message data size utilizing the offset and count information.
Claim 8
Dependent Claim 132 words
The method of claim 1 , wherein the step of determining a message data contents and a corresponding message data size utilizing the offset and count information further comprises: reading a SCSI message out length from the retrieved data structure utilizing the offset and count information; reading a SCSI message out contents from the retrieved data structure utilizing the offset and count information; reading a SCSI command descriptor block length from the retrieved data structure utilizing the offset and count information; reading a SCSI command descriptor block contents from the retrieved data structure utilizing the offset and count information; reading a SCSI target LUN from the retrieved data structure utilizing the offset and count information; and reading a SCSI target ID from the retrieved data structure utilizing the offset and count information.
Claim 9
Dependent Claim 22 words
The method of claim 1 , further comprising: transmitting the message data necessary to process the I/O transaction to an I/O device.
Claim 10
Independent Claim 85 words
A method of handling an I/O request, comprising: receiving a base address for a location within a host memory of an operating system data structure for the I/O request; retrieving the operating system data structure from the location identified by the base address; utilizing offset and count information defining a configuration of the operating system data structure to identify message data within the operating system data structure which is necessary to process the I/O request; and transmitting the identified message data to an I/O device.
Claim 11
Independent Claim 85 words
A method of handling an I/O request, comprising: receiving a base address for a location within a host memory of an operating system data structure for the I/O request; retrieving the operating system data structure from the location identified by the base address; utilizing offset and count information defining a configuration of the operating system data structure to identify message data within the operating system data structure which is necessary to process the I/O request; and transmitting the identified message data to an I/O device.
Claim 12
Dependent Claim 73 words
The method of claim 9 , wherein the step of utilizing offset and count information defining a configuration of the operating system data structure to identify message data within the operating system data structure which is necessary to process the I/O request further comprises: utilizing the offset and count information to determine a message length offset, and message length size, and a message data offset for each message element forming the I/O request.
Claim 13
Dependent Claim 95 words
The method of claim 10 , wherein the step of utilizing the offset and count information to determine a message length offset, and message length size, and a message data offset for each message element forming the I/O request further comprises: determining a SCSI message out length offset, a SCSI message out data offset, a SCSI command descriptor block length offset, a SCSI command descriptor block length size, a SCSI command descriptor block data offset, a SCSI target LUN, and a SCSI target ID from the retrieved data structure utilizing the offset and count information.
Claim 14
Dependent Claim 115 words
An I/O control system, comprising: a plurality of storage locations containing offset and count information for an operating system data structure configuration employed in I/O transactions involving the I/O control system; a base address storage location containing a base address for a operating system data structure for an I/O transaction; a I/O engine connected to the plurality of storage locations and the base address storage location, the I/O engine: monitoring the base address storage location; retrieving the data structure in response to detecting a base address being written to the base address storage location; and determining message data necessary to process the I/O transaction from the retrieved data structure utilizing the offset and count information.
Claim 15
Dependent Claim 115 words
An I/O control system, comprising: a plurality of storage locations containing offset and count information for an operating system data structure configuration employed in I/O transactions involving the I/O control system; a base address storage location containing a base address for a operating system data structure for an I/O transaction; a I/O engine connected to the plurality of storage locations and the base address storage location, the I/O engine: monitoring the base address storage location; retrieving the data structure in response to detecting a base address being written to the base address storage location; and determining message data necessary to process the I/O transaction from the retrieved data structure utilizing the offset and count information.
Claim 16
Dependent Claim 22 words
The I/O control system of claim 12 , wherein the plurality of storage locations and the base address storage location comprise registers.
Claim 17
Dependent Claim 24 words
The I/O control system of claim 12 , wherein the plurality of storage locations and the base address storage location comprise firmware storage locations.
Claim 18
Dependent Claim 70 words
The I/O control system of claim 12 , further comprising: a host memory coupled to the I/O engine and containing the operating system data structure; a processor coupled to the I/O engine and executing a device driver process loading the offset and count information into the plurality of storage locations; and an I/O device coupled to the I/O engine and containing data which is the subject of the I/O transaction.
Claim 19
Dependent Claim 89 words
The I/O control system of claim 15 , further comprising: a first bus interface unit connected between the host memory and the I/O engine and between the processor and the I/O engine; a second bus interface unit connected between the I/O device and the I/O engine; a local memory connected to the I/O engine in which the retrieved data structure is stored; and a DMA engine connected to the first bus interface unit, the local memory, and the I/O engine for retrieving the data structure from the base address.
Claim 20
Dependent Claim 63 words
The I/O control system of claim 15 , wherein the plurality of storage locations contain: a SCSI message out length offset, a SCSI message out length size, a SCSI message out data offset, a SCSI command descriptor block length offset, a SCSI command descriptor block length size, a SCSI command descriptor block data offset, a SCSI target LUN, and a SCSI target ID.
Claim 21
Dependent Claim 25 words
The I/O control system of claim 15 , wherein the base address storage location contains: a host memory address for the operating system data structure.
Claim 22
Dependent Claim 100 words
A computer program product within a computer usable medium for handling an I/O request, comprising: instructions for receiving a base address for a location within a host memory of an operating system data structure for the I/O request; instructions for retrieving the operating system data structure from the location identified by the base address; instructions for utilizing offset and count information defining a configuration of the operating system data structure to identify message data within the operating system data structure which is necessary to process the I/O request; and instructions for transmitting the identified message data to an I/O device.
Claim 23
Dependent Claim 100 words
A computer program product within a computer usable medium for handling an I/O request, comprising: instructions for receiving a base address for a location within a host memory of an operating system data structure for the I/O request; instructions for retrieving the operating system data structure from the location identified by the base address; instructions for utilizing offset and count information defining a configuration of the operating system data structure to identify message data within the operating system data structure which is necessary to process the I/O request; and instructions for transmitting the identified message data to an I/O device.
Claim 24
Dependent Claim 230 words
The computer program product of claim 19 , wherein the instructions for utilizing offset and count information defining a configuration of the operating system data structure to identify message data within the operating system data structure which is necessary to process the I/O request further comprise: instructions for determining a SCSI message out length from the retrieved operating system data structure utilizing a SCSI message out length offset and a SCSI message out length size within the offset and count information; instructions for determining a SCSI message out contents from the retrieved operating system data structure utilizing a SCSI message out data offset within the offset and count information; instructions for determining a SCSI command descriptor block length from the retrieved operating system data structure utilizing a SCSI command descriptor block length offset and a SCSI command descriptor block length size within the offset and count information; instructions for determining a SCSI command descriptor block contents from the retrieved operating system data structure utilizing a SCSI command descriptor block data offset within the offset and count information; instructions for determining a SCSI target LUN from the retrieved operating system data structure utilizing a SCSI target LUN offset within the offset and count information; and instructions for determining a SCSI target ID from the retrieved operating system data structure utilizing a SCSI target ID offset within the offset and count information.
Claim 25
Dependent Claim 61 words
The computer program product of claim 20 , wherein the instructions for transmitting the identified message data to an I/O device further comprise: instructions for transmitting the SCSI message out length, the SCSI message out contents, the SCSI command descriptor block length, the SCSI command descriptor block contents, the SCSI target LUN and the SCSI target ID to the I/O device.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-09-17 2005-03-19 2005-09-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-09-17 2009-03-19 2009-09-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-09-17 2013-03-19 2013-09-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag