US20060155888A1 - Request conversion - Google Patents
Request conversion Download PDFInfo
- Publication number
- US20060155888A1 US20060155888A1 US11/372,646 US37264606A US2006155888A1 US 20060155888 A1 US20060155888 A1 US 20060155888A1 US 37264606 A US37264606 A US 37264606A US 2006155888 A1 US2006155888 A1 US 2006155888A1
- Authority
- US
- United States
- Prior art keywords
- protocol
- data
- data transfer
- transfer request
- circuitry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
Definitions
- This disclosure relates to request conversion.
- a computer node in one conventional data storage arrangement, includes a host processor and a host bus adapter (HBA).
- the HBA is coupled to a data storage device.
- a host processor in the computer node issues a first data transfer request that complies with a first protocol.
- the HBA converts the request into one or more other data transfer requests that comply with a second protocol, and issues the one or more other requests to the data storage device.
- the data transfer amount requested by a single data transfer request according to the first protocol may exceed the maximum data transfer amount that a single data transfer request according to the second protocol can request.
- One proposed solution to the problem is to restrict the maximum data transfer amount that can be requested by a single data transfer request according to the first protocol such that it is less than or equal to the maximum data transfer amount that can be requested by a single data transfer request according to the second protocol.
- one or more processes that implement the first protocol are modified to carry out this proposed solution; this may limit the types of processes that may be executed to implement the first protocol.
- a greater number of data transfer requests according to the first protocol may be generated and issued; this may increase the amount of processing resources that may be consumed to generate data transfer requests according to the first protocol.
- the HBA In another proposed solution, if the data transfer amount requested by a data transfer request according to the first protocol exceeds the maximum data transfer amount that can be requested by a single data transfer request according to the second protocol, the HBA generates and stores in memory a linked list of separate data transfer requests according to the second protocol. The respective data transfer amounts requested by the separate requests sum to the data transfer amount requested by the data transfer request according to the first protocol.
- implementation of this proposed solution consumes an undesirably large amount of memory.
- this proposed solution fails to appreciate possible data proximity in cache memory; this may result in inefficient use of cache memory.
- FIG. 1 is a diagram that illustrates a system embodiment.
- FIG. 2 illustrates data structures according to an embodiment.
- FIG. 3 illustrates data whose transfer may be requested according to an embodiment.
- FIG. 4 is a flowchart that illustrates operations that may be performed according to an embodiment.
- FIG. 1 illustrates a system embodiment 100 .
- System 100 may include a host processor 12 coupled to a chipset 14 .
- Host processor 12 may comprise, for example, an Intel® Pentium® IV microprocessor that is commercially available from the Assignee of the subject application.
- host processor 12 may comprise another type of microprocessor, such as, for example, a microprocessor that is manufactured and/or commercially available from a source other than the Assignee of the subject application, without departing from this embodiment.
- Chipset 14 may comprise a host bridge/hub system that may couple host processor 12 , computer-readable system memory 21 , and a user interface system 16 to each other and to a bus system 22 .
- Chipset 14 may also include an input/output (I/O) bridge/hub system (not shown) that may couple the host bridge/bus system to bus 22 .
- Chipset 14 may comprise one or more integrated circuit chips, such as those selected from integrated circuit chipsets commercially available from the assignee of the subject application (e.g., graphics memory and I/O controller hub chipsets), although one or more other integrated circuit chips may also, or alternatively be used, without departing from this embodiment.
- User interface system 16 may comprise, e.g., a keyboard, pointing device, and display system that may permit a human user to input commands to, and monitor the operation of, system 100 .
- Bus 22 may comprise a bus that complies with the Peripheral Component Interconnect (PCI) ExpressTM Base Specification Revision 1.0, published Jul. 22, 2002, available from the PCI Special Interest Group, Portland, Oreg., U.S.A. (hereinafter referred to as a “PCI ExpressTM bus”).
- PCI ExpressTM bus Peripheral Component Interconnect ExpressTM bus
- bus 22 instead may comprise a bus that complies with the PCI-X Specification Rev. 1.0a, Jul. 24, 2000, available from the aforesaid PCI Special Interest Group, Portland, Oreg., U.S.A. (hereinafter referred to as a “PCI-X bus”).
- bus 22 may comprise other types and configurations of bus systems, without departing from this embodiment.
- System embodiment 100 may comprise storage 27 .
- Storage 27 may comprise a redundant array of independent disks (RAID) 29 including mass storage 31 .
- Storage 27 may be communicatively coupled to an I/O controller circuit card 20 via one or more communication links 44 .
- “storage” means one or more apparatus and/or media into, and from which, data and/or commands may be stored and retrieved, respectively.
- “mass storage” means storage that is capable of non-volatile storage of data and/or commands, and, for example, may include, in this embodiment, without limitation, magnetic, optical, and/or semiconductor storage devices.
- card 20 may comprise, for example, an HBA.
- the number of storage devices that may be comprised in mass storage 31 , RAID 29 , and/or storage 27 , and the number of communication links 44 may vary without departing from this embodiment.
- the RAID level that may be implemented by RAID 29 may be 0, 1, or greater than 1.
- the number of mass storage devices that may be comprised in mass storage 31 may vary so as to permit the number of these mass storage devices to be at least sufficient to implement the RAID level implemented in RAID 29 .
- RAID 29 and/or mass storage 31 may be eliminated from storage 27 .
- Processor 12 system memory 21 , chipset 14 , bus 22 , and circuit card slot 30 may be comprised in a single circuit board, such as, for example, a system motherboard 32 .
- Host computer system operative circuitry 110 may comprise system motherboard 32 .
- card 20 may exchange data and/or commands with storage 27 , RAID 29 , and/or mass storage 31 via one or more links 44 , in accordance with, e.g., a Serial Advanced Technology Attachment (SATA) protocol.
- SATA Serial Advanced Technology Attachment
- I/O controller card 20 may exchange data and/or commands with storage 27 , RAID 29 , and/or mass storage 31 in accordance with other and/or additional communication protocols, without departing from this embodiment.
- the SATA protocol may comply or be compatible with the protocol described in “Serial ATA: High Speed Serialized AT Attachment,” Revision 1.0, published on Aug. 29, 2001 by the Serial ATA Working Group.
- circuit card slot 30 may comprise, for example, a PCI ExpressTM or PCI-X bus compatible or compliant expansion slot or interface 36 .
- Interface 36 may comprise a bus connector 37 may be electrically and mechanically mated with a mating bus connector 34 that may be comprised in a bus expansion slot or interface 35 in circuit card 20 .
- circuitry may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry, state machine circuitry, and/or memory that may comprise program instructions that may be executed by programmable circuitry.
- circuit card 20 may comprise operative circuitry 38 which may comprise computer-readable memory 39 and I/O processor 40 .
- Memory 21 and/or memory 39 may comprise one or more of the following types of memories: semiconductor firmware memory, programmable memory, non-volatile memory, read only memory, electrically programmable memory, random access memory, flash memory, magnetic disk memory, and/or optical disk memory. Either additionally or alternatively, memory 21 and/or memory 39 may comprise other and/or later-developed types of computer-readable memory.
- I/O processor 40 may comprise, for example, an Intel® i960® RX, IOP310, and/or IOP321 I/O processor commercially available from the Assignee of the subject application.
- I/O processor 40 may comprise another type of I/O processor and/or microprocessor, such as, for example, an I/O processor and/or microprocessor that is manufactured and/or commercially available from a source other than the Assignee of the subject application, without departing from this embodiment.
- Processor 40 may comprise computer-readable memory 42 .
- Memory 42 may comprise, for example, local cache memory accessible by processor 40 .
- Machine-readable program instructions may be stored in memory 21 and/or memory 39 . These instructions may be accessed and executed by host processor 12 , I/O processor 40 , circuitry 110 , and/or circuitry 38 . When executed by host processor 12 , I/O processor 40 , circuitry 110 , and/or circuitry 38 , these instructions may result in host processor 12 , I/O processor 40 , circuitry 110 , and/or circuitry 38 performing the operations described herein as being performed by host processor 12 , I/O processor 40 , circuitry 110 , and/or circuitry 38 .
- Slot 30 and card 20 may be constructed to permit card 20 to be inserted into slot 30 .
- connectors 34 and 36 become electrically and mechanically coupled to each other.
- circuitry 38 in card 20 becomes electrically coupled to bus 22 and may exchange data and/or commands with system memory 21 , host processor 12 , and/or user interface system 16 via bus 22 and chipset 14 .
- operative circuitry 38 may not be comprised in card 20 , but instead, may be comprised in other structures, systems, and/or devices. These other structures, systems, and/or devices may be, for example, comprised in motherboard 32 , coupled to bus 22 , and exchange data and/or commands with other components (such as, for example, system memory 21 , host processor 12 , and/or user interface system 16 ) in system 100 .
- circuitry 38 and/or other circuitry may be comprised in chipset 14 , chipset 14 may be coupled to storage 27 via one or more links 44 , and chipset 14 may exchange data and/or commands with storage 27 in a manner that is similar to the manner in which circuitry 38 is described herein as exchanging data and/or commands with storage 27 .
- Mass storage 31 may be capable of storing a plurality of mutually contiguous portions 35 A, 35 B, . . . 35 N of data 35 .
- each of these portions 35 A, 35 B, . . . 35 N may comprise a plurality of mutually contiguous logical or physical sectors.
- portion 35 A may comprise mutually contiguous logical or physical sectors 300 A . . . 300 N
- portion 35 B may comprise mutually contiguous logical or physical sectors 302 A . . . 302 N
- portion 35 N may comprise mutually contiguous logical or physical sectors 304 A . . . 304 N.
- 35 N may begin and end at respective logical and/or physical addresses in mass storage 31 . Additionally, these sectors may be comprised in logical and/or physical blocks in mass storage 31 .
- the first sector 300 A of portion 35 A may begin at a logical or physical block address in mass storage 31 identified and/or specified by “ADDRESS A” in FIG. 3 .
- the first sector 302 A of portion 35 B may begin at a logical or physical block address in mass storage 31 identified and/or specified by ADDRESS B in FIG. 3 .
- the first sector 304 A of portion 35 N may begin at a logical or physical block address in mass storage 31 identified and/or specified by “ADDRESS C” in FIG. 3 .
- portions 35 A, 35 B, . . . 35 N have been previously described as being mutually contiguous, they may not be mutually contiguous, without departing from this embodiment.
- the logical or physical blocks may not be mutually contiguous.
- portions 35 A, 35 B, . . . 35 N may not be mutually contiguous.
- a data transfer request means a request and/or command to transfer data.
- transferring data means transmitting, reading, writing, storing, and/or retrieving data. In this embodiment, this data transfer request may comply, be compatible, and/or be in accordance with a first protocol.
- a “protocol” means one or more rules governing exchange of data, commands, and/or requests between or among two or more entities.
- this first protocol may comprise, for example, a Small Computer Systems Interface (SCSI) protocol described, for example, in American National Standards Institute (ANSI) Small Computer Systems Interface-2 (SCSI-2) ANSI X3.131-1994 Specification.
- SCSI Small Computer Systems Interface
- ANSI American National Standards Institute
- SCSI-2 Small Computer Systems Interface-2
- this first protocol may comprise other and/or additional protocols.
- processor 40 may examine the request to determine the amount of data requested by the request to be transferred. For example, in this embodiment, the data transfer request issued from the host processor 12 to card 20 may request that data 35 be read, retrieved, and/or transferred from mass storage 31 to host processor 12 . If the data transfer request issued from host processor 12 to card 20 is in accordance with a SCSI protocol, then the request may comprise, for example, a SCSI request block that may contain one or more parameters that may indicate the amount of data comprised in data 35 . Processor 40 may examine these one or more parameters to determine this amount of data 35 requested to be transferred from mass storage 31 to host processor 12 .
- processor 40 may generate a data transfer request according to the second protocol and a data structure, as illustrated by operation 402 in FIG. 4 .
- a “data structure” means a set, collection, and/or group of one or more values and/or variables that may be referenced and/or referred to collectively as a single unit.
- controller card 20 may exchange data and/or commands with storage 27 , RAID 29 , and/or mass storage 31 in accordance with an SATA protocol; in this embodiment, this second protocol may comprise an SATA protocol.
- This SATA protocol may specify a maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred (e.g., without violating the SATA protocol).
- processor 40 may generate, as a result of operation 402 , a data transfer request 46 in accordance with SATA protocol and a data structure 212 (See FIG. 2 ).
- Data transfer request 46 may request that a portion (e.g., portion 35 A) of data 35 whose transfer was requested by host processor 12 be read, retrieved, and transferred from mass storage 31 to circuitry 38 .
- processor 40 may store in memory 42 request block 200 .
- Block 200 may comprise, for example, a plurality of data structures 202 , 204 , 206 , and 212 .
- Data structures 202 and 204 may comprise respective values that may identify and/or specify, respectively, SCSI context information and command descriptor block information obtained from the data transfer request issued by host processor 12 .
- Data structure 206 may comprise a command task file 208 that may comprise one or more values 210 that may indicate, at least in part, one or more parameters 48 in request 46 in accordance with SATA protocol. These one or more parameters 48 may identify, at least in part, the portion 35 A of data 35 requested by request 46 to be transferred from mass storage 31 to circuitry 38 .
- data structure 212 may comprise one or more values 214 that may identify, at least in part, another portion (e.g., portion 35 B) of data 35 to be transferred to circuitry 38 from mass storage 31 , after storage 27 has executed request 46 , and portion 35 A, whose transfer to circuitry 38 is requested by request 46 , has been transferred from mass storage 31 to circuitry 38 .
- one or more values 214 may comprise a plurality of values 216 A, 216 B, . . . 216 N.
- Value 216 A may identify, at least in part, a total number of data transfer requests according to SATA protocol that, when executed by storage 27 , may result in transfer of data 35 from mass storage 31 to circuitry 38 .
- Value 216 A may be calculated by processor 40 by dividing the amount of data comprised in data 35 by the maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred, and rounding up to the nearest whole number any fractional remainder resulting from this division.
- the respective values of the amount of data present in data 35 , as well as, the maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred may be specified, for example, in terms (e.g., units) of respective numbers of sectors of mass storage 31 .
- Processor 40 may assign to each of the data transfer requests comprised in the total number of data transfer requests identified by value 216 A a respective sequence number, for example, with the lowest assigned sequence number being assigned to data transfer request 46 , and with each respective subsequently generated data transfer request being assigned a successively greater respective sequence number.
- value 216 B may be the sequence number assigned to the data transfer request most recently generated by processor 40 .
- value 216 B may be the sequence number of request 46 .
- One or more values 214 also may include one or more values 216 N that may identify, at least in part, an amount of data 35 remaining, after execution of the data transfer request most recently generated by processor 40 , to be transferred from mass storage 31 to circuitry 38 , and/or the location of the portion (e.g., portion 35 B) of data 35 whose transfer will be requested by the next data transfer request (e.g., request 50 ) to be generated by processor 40 .
- the execution by storage 27 of this next data transfer request 50 may result in transfer of another portion 35 B of data 35 .
- This remaining amount of data 35 may be identified by one or more values 216 N by and/or in terms (e.g., units) of, at least in part, a number of sectors of mass storage 31 .
- the location of the portion 35 B of data 35 whose transfer will be requested by the next data transfer request 50 to be generated by processor 40 may be identified by and/or in terms of, at least in part, a starting address (e.g., ADDRESS B) of this portion 35 B of data 35 .
- a starting address e.g., ADDRESS B
- data structures 202 , 204 , 206 , and 212 have been described previously as being comprised in single contiguous block 200 in memory 42 , data structures 202 , 204 , 206 , and/or 212 may not be mutually contiguous with each other in memory 42 . Other modifications are also possible without departing from this embodiment.
- processor 40 may signal circuitry 38 . This may result in issuance of data transfer request 46 to storage 27 via one or more links 44 , as illustrated by operation 404 in FIG. 4 .
- storage 27 may execute request 46 . This may result in mass storage 31 reading, retrieving, and/or transmitting portion 35 A of data 35 to circuitry 38 .
- Circuitry 38 may store portion 35 A of data 35 in memory 39 and/or memory 21 .
- processor 40 may modify, at least in part, data structure 206 , based, at least in part, upon one or more values 214 , as illustrated by operation 406 in FIG. 4 .
- processor 40 may modify, at least in part, command task file 208 and/or one or more values 210 so as to comport with one or more values 216 N. This may result in command task file 208 and/or one or more values 210 identifying, at least in part, portion 35 B of data 35 to be requested by request 50 for transfer from mass storage 31 to circuitry 38 .
- processor 40 may generate request 50 and may signal circuitry 38 . This may result in circuitry 38 issuing to storage 27 via one or more links 44 data transfer request 50 , as illustrated by operation 408 in FIG. 4 .
- processor 40 may modify value 216 B such that value 216 B may be the sequence number assigned to request 50 .
- Request 50 may comprise one or more parameters 52 that may be indicated, at least in part, by one or more values 210 , as modified, at least in part, a result of operation 406 . These one or more parameters 52 may identify, at least in part, the portion 35 B of data 35 requested by request 50 to be transferred from mass storage 31 to circuitry 38 .
- storage 27 may execute request 50 . This may result in mass storage 31 reading, retrieving, and/or transmitting portion 35 B of data 35 to circuitry 38 .
- Circuitry 38 may store portion 35 B of data 35 in memory 39 and/or memory 21 .
- processor 40 may modify, at least in part, data structure 212 such that one or more values 214 may identify, at least in part, yet another portion of data 35 whose transfer is to be requested by yet another data transfer request (not shown) to be generated by processor 40 .
- processor 40 may modify, at least in part, one or more values 216 N to identify, at least in part, an amount of data 35 remaining, after execution by storage 27 of the data transfer request most recently generated by processor 40 (e.g., request 50 ), to be transferred from mass storage 31 to circuitry 38 , and/or the location of the portion of data 35 whose transfer will be requested by this yet another data transfer request to be generated by processor 40 .
- value 216 N may identify, at least in part, the amount of data comprised in portion 35 N of data 35 , by and/or in terms (e.g., units) of a number of sectors of mass storage 31 .
- the location of the portion 35 N of data 35 whose transfer will be requested by this yet another data transfer request to be generated by processor 40 may be identified by and/or in terms of, at least in part, a starting address (e.g., ADDRESS C) of this portion 35 N of data 35 .
- processor 40 may modify, at least in part, data structure 206 , based, at least in part, upon one or more values 214 .
- processor 40 may modify, at least in part, command task file 208 and/or one or more values 210 so as to comport with one or more values 216 N. This may result in command task file 208 and/or one or more values 210 identifying, at least in part, portion 35 N of data 35 to be requested by this yet another data transfer request 50 for transfer from mass storage 31 to circuitry 38 .
- processor 40 may generate this yet another data transfer request and may signal circuitry 38 . This may result in circuitry 38 issuing to storage 27 via one or more links 44 this yet another data transfer request.
- processor 40 may modify value 216 B such that value 216 B may be the sequence number assigned to this yet another data transfer request.
- This yet another data transfer request may comprise one or more parameters that may be indicated, at least in part, by one or more values 210 , as most recently modified, at least in part. These one or more parameters may identify, at least in part, the portion 35 N of data 35 requested by this yet another data transfer request to be transferred from mass storage 31 to circuitry 38 .
- storage 27 may execute this request. This may result in mass storage 31 reading, retrieving, and/or transmitting portion 35 N of data 35 to circuitry 38 .
- Circuitry 38 may store portion 35 N of data 35 in memory 39 and/or memory 21 .
- circuitry 38 may transmit to host processor 12 the data 35 whose transfer was requested by host processor 12 .
- circuitry 38 may transmit to and store in memory 21 data 35 , and may indicate to host processor 12 that data 35 has been retrieved from storage 27 , and is available to host processor 12 in memory 21 .
- the number of portions 35 A, 35 B, . . . 35 N may vary without departing from this embodiment. Accordingly, the number of data transfer requests generated and issued to storage 27 by processor 40 may vary without departing from this embodiment.
- one system embodiment may comprise a circuit board that comprises a circuit card slot, and a circuit card capable of being coupled to the slot.
- the card may comprise circuitry to generate, if an amount of data requested to be transferred by a data transfer request according to a first protocol exceeds a maximum data transfer amount permitted to be requested by a single data transfer request according to a second protocol, one data transfer request according to the second protocol and a data structure.
- the one data transfer request may request transfer of a portion of the data
- the data structure may comprise one or more values identifying, at least in part, another portion of the data.
- the circuitry also may be capable of modifying, at least in part, another data structure based, at least in part, upon the one or more values.
- the another data structure may comprise, prior to the modifying, at least in part, of the another data structure, one or more other values indicating, at least in part, one or more parameters of the one data transfer request.
- these features of this system embodiment may permit fewer data transfer requests according to the first protocol to be generated and issued compared to the prior art.
- this may reduce the amount of processing resources that may be consumed to generate data transfer requests according to the first protocol.
- these features of this system embodiment may obviate generating and storing in memory a linked list of separate data transfer requests according to the second protocol, may permit data comprised in the data structures of this system embodiment to be loaded into memory more efficiently compared to the prior art, and may permit these data structures to be modified, at least in part, and reused, at least in part.
- these features of this system embodiment may permit the amount of memory consumed to implement this system embodiment to be reduced, may reduce the amount of memory processing, and may permit memory resources (e.g., cache memory resources) to be used more efficiently compared to the prior art.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
In one embodiment, a method may include, if an amount of data requested to be transferred by a data transfer request according to a first protocol exceeds a maximum data transfer amount permitted to be requested by a single data transfer request according to a second protocol, generating one data transfer request according to the second protocol and a data structure, and modifying, at least in part, another data structure. This data transfer request may request transfer of a portion of the data. The data structure may include one or more values identifying, at least in part, another portion of the data. The modifying may be based, at least in part, upon the one or more values. The other data structure may include, prior to being modified, one or more other values indicating, at least in part, one or more parameters of the one data transfer request.
Description
- This U.S. patent application is a continuation of U.S. patent application Ser. No. 10/659,959 filed Sep. 10, 2003.
- This disclosure relates to request conversion.
- In one conventional data storage arrangement, a computer node includes a host processor and a host bus adapter (HBA). The HBA is coupled to a data storage device. A host processor in the computer node issues a first data transfer request that complies with a first protocol. The HBA converts the request into one or more other data transfer requests that comply with a second protocol, and issues the one or more other requests to the data storage device. In this arrangement, it is possible that the data transfer amount requested by a single data transfer request according to the first protocol may exceed the maximum data transfer amount that a single data transfer request according to the second protocol can request.
- One proposed solution to the problem is to restrict the maximum data transfer amount that can be requested by a single data transfer request according to the first protocol such that it is less than or equal to the maximum data transfer amount that can be requested by a single data transfer request according to the second protocol. Disadvantageously, one or more processes that implement the first protocol are modified to carry out this proposed solution; this may limit the types of processes that may be executed to implement the first protocol. Also disadvantageously, a greater number of data transfer requests according to the first protocol may be generated and issued; this may increase the amount of processing resources that may be consumed to generate data transfer requests according to the first protocol.
- In another proposed solution, if the data transfer amount requested by a data transfer request according to the first protocol exceeds the maximum data transfer amount that can be requested by a single data transfer request according to the second protocol, the HBA generates and stores in memory a linked list of separate data transfer requests according to the second protocol. The respective data transfer amounts requested by the separate requests sum to the data transfer amount requested by the data transfer request according to the first protocol. Disadvantageously, implementation of this proposed solution consumes an undesirably large amount of memory. Also disadvantageously, this proposed solution fails to appreciate possible data proximity in cache memory; this may result in inefficient use of cache memory.
- Features and advantages of embodiments of the claimed subject matter will become apparent as the following Detailed Description proceeds, and upon reference to the Drawings, wherein like numerals depict like parts, and in which:
-
FIG. 1 is a diagram that illustrates a system embodiment. -
FIG. 2 illustrates data structures according to an embodiment. -
FIG. 3 illustrates data whose transfer may be requested according to an embodiment. -
FIG. 4 is a flowchart that illustrates operations that may be performed according to an embodiment. - Although the following Detailed Description will proceed with reference being made to illustrative embodiments of the claimed subject matter, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art. Accordingly, it is intended that the claimed subject matter be viewed broadly, and be defined only as set forth in the accompanying claims.
-
FIG. 1 illustrates asystem embodiment 100.System 100 may include ahost processor 12 coupled to achipset 14.Host processor 12 may comprise, for example, an Intel® Pentium® IV microprocessor that is commercially available from the Assignee of the subject application. Of course, alternatively,host processor 12 may comprise another type of microprocessor, such as, for example, a microprocessor that is manufactured and/or commercially available from a source other than the Assignee of the subject application, without departing from this embodiment. -
Chipset 14 may comprise a host bridge/hub system that may couplehost processor 12, computer-readable system memory 21, and auser interface system 16 to each other and to abus system 22.Chipset 14 may also include an input/output (I/O) bridge/hub system (not shown) that may couple the host bridge/bus system to bus 22.Chipset 14 may comprise one or more integrated circuit chips, such as those selected from integrated circuit chipsets commercially available from the assignee of the subject application (e.g., graphics memory and I/O controller hub chipsets), although one or more other integrated circuit chips may also, or alternatively be used, without departing from this embodiment.User interface system 16 may comprise, e.g., a keyboard, pointing device, and display system that may permit a human user to input commands to, and monitor the operation of,system 100. -
Bus 22 may comprise a bus that complies with the Peripheral Component Interconnect (PCI) Express™ Base Specification Revision 1.0, published Jul. 22, 2002, available from the PCI Special Interest Group, Portland, Oreg., U.S.A. (hereinafter referred to as a “PCI Express™ bus”). Alternatively,bus 22 instead may comprise a bus that complies with the PCI-X Specification Rev. 1.0a, Jul. 24, 2000, available from the aforesaid PCI Special Interest Group, Portland, Oreg., U.S.A. (hereinafter referred to as a “PCI-X bus”). Also alternatively,bus 22 may comprise other types and configurations of bus systems, without departing from this embodiment. -
System embodiment 100 may comprisestorage 27.Storage 27 may comprise a redundant array of independent disks (RAID) 29 includingmass storage 31.Storage 27 may be communicatively coupled to an I/Ocontroller circuit card 20 via one ormore communication links 44. As used herein, “storage” means one or more apparatus and/or media into, and from which, data and/or commands may be stored and retrieved, respectively. Also as used herein, “mass storage” means storage that is capable of non-volatile storage of data and/or commands, and, for example, may include, in this embodiment, without limitation, magnetic, optical, and/or semiconductor storage devices. In this embodiment,card 20 may comprise, for example, an HBA. Of course, the number of storage devices that may be comprised inmass storage 31,RAID 29, and/orstorage 27, and the number ofcommunication links 44 may vary without departing from this embodiment. - The RAID level that may be implemented by
RAID 29 may be 0, 1, or greater than 1. Depending upon, for example, the RAID level implemented inRAID 29, the number of mass storage devices that may be comprised inmass storage 31 may vary so as to permit the number of these mass storage devices to be at least sufficient to implement the RAID level implemented inRAID 29. Alternatively, without departing from this embodiment,RAID 29 and/ormass storage 31 may be eliminated fromstorage 27. -
Processor 12,system memory 21,chipset 14,bus 22, andcircuit card slot 30 may be comprised in a single circuit board, such as, for example, asystem motherboard 32. Host computer systemoperative circuitry 110 may comprisesystem motherboard 32. - In this embodiment,
card 20 may exchange data and/or commands withstorage 27,RAID 29, and/ormass storage 31 via one ormore links 44, in accordance with, e.g., a Serial Advanced Technology Attachment (SATA) protocol. Of course, alternatively, I/O controller card 20 may exchange data and/or commands withstorage 27,RAID 29, and/ormass storage 31 in accordance with other and/or additional communication protocols, without departing from this embodiment. - In accordance with this embodiment, if
controller card 20 exchanges data and/or commands withstorage 27,RAID 29, and/ormass storage 31 in accordance with an SATA protocol, the SATA protocol may comply or be compatible with the protocol described in “Serial ATA: High Speed Serialized AT Attachment,” Revision 1.0, published on Aug. 29, 2001 by the Serial ATA Working Group. - Depending upon, for example, whether
bus 22 comprises a PCI Express™ bus or a PCI-X bus,circuit card slot 30 may comprise, for example, a PCI Express™ or PCI-X bus compatible or compliant expansion slot orinterface 36.Interface 36 may comprise abus connector 37 may be electrically and mechanically mated with amating bus connector 34 that may be comprised in a bus expansion slot orinterface 35 incircuit card 20. - As used herein, “circuitry” may comprise, for example, singly or in any combination, hardwired circuitry, programmable circuitry, state machine circuitry, and/or memory that may comprise program instructions that may be executed by programmable circuitry. In this embodiment,
circuit card 20 may compriseoperative circuitry 38 which may comprise computer-readable memory 39 and I/O processor 40.Memory 21 and/ormemory 39 may comprise one or more of the following types of memories: semiconductor firmware memory, programmable memory, non-volatile memory, read only memory, electrically programmable memory, random access memory, flash memory, magnetic disk memory, and/or optical disk memory. Either additionally or alternatively,memory 21 and/ormemory 39 may comprise other and/or later-developed types of computer-readable memory. - I/
O processor 40 may comprise, for example, an Intel® i960® RX, IOP310, and/or IOP321 I/O processor commercially available from the Assignee of the subject application. Of course, alternatively, I/O processor 40 may comprise another type of I/O processor and/or microprocessor, such as, for example, an I/O processor and/or microprocessor that is manufactured and/or commercially available from a source other than the Assignee of the subject application, without departing from this embodiment.Processor 40 may comprise computer-readable memory 42.Memory 42 may comprise, for example, local cache memory accessible byprocessor 40. - Machine-readable program instructions may be stored in
memory 21 and/ormemory 39. These instructions may be accessed and executed byhost processor 12, I/O processor 40,circuitry 110, and/orcircuitry 38. When executed byhost processor 12, I/O processor 40,circuitry 110, and/orcircuitry 38, these instructions may result inhost processor 12, I/O processor 40,circuitry 110, and/orcircuitry 38 performing the operations described herein as being performed byhost processor 12, I/O processor 40,circuitry 110, and/orcircuitry 38. -
Slot 30 andcard 20 may be constructed to permitcard 20 to be inserted intoslot 30. Whencard 20 is properly inserted intoslot 30,connectors connectors circuitry 38 incard 20 becomes electrically coupled tobus 22 and may exchange data and/or commands withsystem memory 21,host processor 12, and/oruser interface system 16 viabus 22 andchipset 14. - Alternatively, without departing from this embodiment, at least a portion of
operative circuitry 38 may not be comprised incard 20, but instead, may be comprised in other structures, systems, and/or devices. These other structures, systems, and/or devices may be, for example, comprised inmotherboard 32, coupled tobus 22, and exchange data and/or commands with other components (such as, for example,system memory 21,host processor 12, and/or user interface system 16) insystem 100. For example, without departing from this embodiment, at least a portion ofcircuitry 38 and/or other circuitry (not shown) may be comprised inchipset 14,chipset 14 may be coupled tostorage 27 via one ormore links 44, andchipset 14 may exchange data and/or commands withstorage 27 in a manner that is similar to the manner in whichcircuitry 38 is described herein as exchanging data and/or commands withstorage 27. -
Mass storage 31 may be capable of storing a plurality of mutuallycontiguous portions data 35. As shown inFIG. 3 , each of theseportions portion 35A may comprise mutually contiguous logical orphysical sectors 300A . . . 300N,portion 35B may comprise mutually contiguous logical orphysical sectors 302A . . . 302N, andportion 35N may comprise mutually contiguous logical orphysical sectors 304A . . . 304N. Each of the sectors comprised inportions mass storage 31. Additionally, these sectors may be comprised in logical and/or physical blocks inmass storage 31. For example, thefirst sector 300A ofportion 35A may begin at a logical or physical block address inmass storage 31 identified and/or specified by “ADDRESS A” inFIG. 3 . Thefirst sector 302A ofportion 35B may begin at a logical or physical block address inmass storage 31 identified and/or specified by ADDRESS B inFIG. 3 . Thefirst sector 304A ofportion 35N may begin at a logical or physical block address inmass storage 31 identified and/or specified by “ADDRESS C” inFIG. 3 . - Although the respective sectors comprised in the
portions portions - With reference now being made to FIGS. 1 to 4,
operations 400 will be described that may be performed in accordance with an embodiment. After, for example, a reset ofsystem 100,host processor 12 may generate and issue, viachipset 14,bus 22, andslot 30, a data transfer request. As used herein, a “data transfer request” means a request and/or command to transfer data. As used herein, “transferring data” means transmitting, reading, writing, storing, and/or retrieving data. In this embodiment, this data transfer request may comply, be compatible, and/or be in accordance with a first protocol. As used herein, a “protocol” means one or more rules governing exchange of data, commands, and/or requests between or among two or more entities. In this embodiment, this first protocol may comprise, for example, a Small Computer Systems Interface (SCSI) protocol described, for example, in American National Standards Institute (ANSI) Small Computer Systems Interface-2 (SCSI-2) ANSI X3.131-1994 Specification. However, without departing from this embodiment, this first protocol may comprise other and/or additional protocols. - After
card 20 receives the data transfer request fromhost processor 12,processor 40 may examine the request to determine the amount of data requested by the request to be transferred. For example, in this embodiment, the data transfer request issued from thehost processor 12 to card 20 may request thatdata 35 be read, retrieved, and/or transferred frommass storage 31 tohost processor 12. If the data transfer request issued fromhost processor 12 to card 20 is in accordance with a SCSI protocol, then the request may comprise, for example, a SCSI request block that may contain one or more parameters that may indicate the amount of data comprised indata 35.Processor 40 may examine these one or more parameters to determine this amount ofdata 35 requested to be transferred frommass storage 31 tohost processor 12. - If
processor 40 determines that the amount ofdata 35 requested to be transferred frommass storage 31 tohost processor 12 exceeds a maximum data transfer amount permitted to be requested by a single data transfer request according to a second protocol, in response at least in part to the request from thehost processor 12,processor 40 may generate a data transfer request according to the second protocol and a data structure, as illustrated byoperation 402 inFIG. 4 . As used herein, a “data structure” means a set, collection, and/or group of one or more values and/or variables that may be referenced and/or referred to collectively as a single unit. For example, in this embodiment, as stated previously,controller card 20 may exchange data and/or commands withstorage 27,RAID 29, and/ormass storage 31 in accordance with an SATA protocol; in this embodiment, this second protocol may comprise an SATA protocol. This SATA protocol may specify a maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred (e.g., without violating the SATA protocol). In this embodiment, ifprocessor 40 determines that the amount ofdata 35 requested to be transferred by the data transfer request issued by thehost processor 12 exceeds the maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred,processor 40 may generate, as a result ofoperation 402, adata transfer request 46 in accordance with SATA protocol and a data structure 212 (SeeFIG. 2 ).Data transfer request 46 may request that a portion (e.g.,portion 35A) ofdata 35 whose transfer was requested byhost processor 12 be read, retrieved, and transferred frommass storage 31 tocircuitry 38. - For example, in this embodiment, with specific reference now being made to
FIG. 2 , as part ofoperation 402,processor 40 may store inmemory 42request block 200.Block 200 may comprise, for example, a plurality ofdata structures Data structures host processor 12.Data structure 206 may comprise a command task file 208 that may comprise one ormore values 210 that may indicate, at least in part, one ormore parameters 48 inrequest 46 in accordance with SATA protocol. These one ormore parameters 48 may identify, at least in part, theportion 35A ofdata 35 requested byrequest 46 to be transferred frommass storage 31 tocircuitry 38. - In accordance with this embodiment,
data structure 212 may comprise one ormore values 214 that may identify, at least in part, another portion (e.g.,portion 35B) ofdata 35 to be transferred tocircuitry 38 frommass storage 31, afterstorage 27 has executedrequest 46, andportion 35A, whose transfer tocircuitry 38 is requested byrequest 46, has been transferred frommass storage 31 tocircuitry 38. - For example, in this embodiment, one or
more values 214 may comprise a plurality ofvalues Value 216A may identify, at least in part, a total number of data transfer requests according to SATA protocol that, when executed bystorage 27, may result in transfer ofdata 35 frommass storage 31 tocircuitry 38.Value 216A may be calculated byprocessor 40 by dividing the amount of data comprised indata 35 by the maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred, and rounding up to the nearest whole number any fractional remainder resulting from this division. The respective values of the amount of data present indata 35, as well as, the maximum amount of data that a single data transfer request in accordance with SATA protocol may request to be transferred may be specified, for example, in terms (e.g., units) of respective numbers of sectors ofmass storage 31. -
Processor 40 may assign to each of the data transfer requests comprised in the total number of data transfer requests identified byvalue 216A a respective sequence number, for example, with the lowest assigned sequence number being assigned todata transfer request 46, and with each respective subsequently generated data transfer request being assigned a successively greater respective sequence number. In this embodiment,value 216B may be the sequence number assigned to the data transfer request most recently generated byprocessor 40. Thus, in this example, as initially generated byprocessor 40,value 216B may be the sequence number ofrequest 46. - One or
more values 214 also may include one ormore values 216N that may identify, at least in part, an amount ofdata 35 remaining, after execution of the data transfer request most recently generated byprocessor 40, to be transferred frommass storage 31 tocircuitry 38, and/or the location of the portion (e.g.,portion 35B) ofdata 35 whose transfer will be requested by the next data transfer request (e.g., request 50) to be generated byprocessor 40. The execution bystorage 27 of this nextdata transfer request 50 may result in transfer of anotherportion 35B ofdata 35. This remaining amount ofdata 35 may be identified by one ormore values 216N by and/or in terms (e.g., units) of, at least in part, a number of sectors ofmass storage 31. Additionally, the location of theportion 35B ofdata 35 whose transfer will be requested by the nextdata transfer request 50 to be generated byprocessor 40 may be identified by and/or in terms of, at least in part, a starting address (e.g., ADDRESS B) of thisportion 35B ofdata 35. - Although
data structures contiguous block 200 inmemory 42,data structures memory 42. Other modifications are also possible without departing from this embodiment. - After or contemporaneously, at least in part, with execution of
operation 402,processor 40 may signalcircuitry 38. This may result in issuance ofdata transfer request 46 tostorage 27 via one ormore links 44, as illustrated byoperation 404 inFIG. 4 . In response, at least in part to request 46,storage 27 may executerequest 46. This may result inmass storage 31 reading, retrieving, and/or transmittingportion 35A ofdata 35 tocircuitry 38.Circuitry 38 may storeportion 35A ofdata 35 inmemory 39 and/ormemory 21. - After execution of
operation 404,processor 40 may modify, at least in part,data structure 206, based, at least in part, upon one ormore values 214, as illustrated byoperation 406 inFIG. 4 . For example, in this embodiment,processor 40 may modify, at least in part,command task file 208 and/or one ormore values 210 so as to comport with one ormore values 216N. This may result incommand task file 208 and/or one ormore values 210 identifying, at least in part,portion 35B ofdata 35 to be requested byrequest 50 for transfer frommass storage 31 tocircuitry 38. - After modifying, at least in part,
data structure 206,processor 40 may generaterequest 50 and may signalcircuitry 38. This may result incircuitry 38 issuing tostorage 27 via one ormore links 44 data transferrequest 50, as illustrated byoperation 408 inFIG. 4 . Prior to or contemporaneously with execution ofoperation 408,processor 40 may modifyvalue 216B such thatvalue 216B may be the sequence number assigned to request 50.Request 50 may comprise one ormore parameters 52 that may be indicated, at least in part, by one ormore values 210, as modified, at least in part, a result ofoperation 406. These one ormore parameters 52 may identify, at least in part, theportion 35B ofdata 35 requested byrequest 50 to be transferred frommass storage 31 tocircuitry 38. In response, at least in part, to request 50,storage 27 may executerequest 50. This may result inmass storage 31 reading, retrieving, and/or transmittingportion 35B ofdata 35 tocircuitry 38.Circuitry 38 may storeportion 35B ofdata 35 inmemory 39 and/ormemory 21. - In this example, prior to, contemporaneously with, or after, at least in part, execution of
operation 406 and/oroperation 408,processor 40 may modify, at least in part,data structure 212 such that one ormore values 214 may identify, at least in part, yet another portion ofdata 35 whose transfer is to be requested by yet another data transfer request (not shown) to be generated byprocessor 40. In this embodiment,processor 40 may modify, at least in part, one ormore values 216N to identify, at least in part, an amount ofdata 35 remaining, after execution bystorage 27 of the data transfer request most recently generated by processor 40 (e.g., request 50), to be transferred frommass storage 31 tocircuitry 38, and/or the location of the portion ofdata 35 whose transfer will be requested by this yet another data transfer request to be generated byprocessor 40. - For example, if
portion 35N is the only remaining portion ofdata 35 that has yet to be transferred frommass storage 31 tocircuitry 38 after execution bystorage 27 ofrequests data structure 212, may identify, at least in part, the amount of data comprised inportion 35N ofdata 35, by and/or in terms (e.g., units) of a number of sectors ofmass storage 31. Additionally, the location of theportion 35N ofdata 35 whose transfer will be requested by this yet another data transfer request to be generated byprocessor 40 may be identified by and/or in terms of, at least in part, a starting address (e.g., ADDRESS C) of thisportion 35N ofdata 35. - After this modification, at least in part, of
data structure 212 and the execution ofoperation 408,processor 40 may modify, at least in part,data structure 206, based, at least in part, upon one ormore values 214. For example, in this embodiment,processor 40 may modify, at least in part,command task file 208 and/or one ormore values 210 so as to comport with one ormore values 216N. This may result incommand task file 208 and/or one ormore values 210 identifying, at least in part,portion 35N ofdata 35 to be requested by this yet anotherdata transfer request 50 for transfer frommass storage 31 tocircuitry 38. - After this most recent modifying, at least in part, of
data structure 206,processor 40 may generate this yet another data transfer request and may signalcircuitry 38. This may result incircuitry 38 issuing tostorage 27 via one ormore links 44 this yet another data transfer request. Prior to or contemporaneously with execution ofoperation 408,processor 40 may modifyvalue 216B such thatvalue 216B may be the sequence number assigned to this yet another data transfer request. This yet another data transfer request may comprise one or more parameters that may be indicated, at least in part, by one ormore values 210, as most recently modified, at least in part. These one or more parameters may identify, at least in part, theportion 35N ofdata 35 requested by this yet another data transfer request to be transferred frommass storage 31 tocircuitry 38. In response, at least in part, to this request,storage 27 may execute this request. This may result inmass storage 31 reading, retrieving, and/or transmittingportion 35N ofdata 35 tocircuitry 38.Circuitry 38 may storeportion 35N ofdata 35 inmemory 39 and/ormemory 21. - Thereafter,
circuitry 38 may transmit to hostprocessor 12 thedata 35 whose transfer was requested byhost processor 12. Alternatively or additionally,circuitry 38 may transmit to and store inmemory 21data 35, and may indicate tohost processor 12 thatdata 35 has been retrieved fromstorage 27, and is available to hostprocessor 12 inmemory 21. - As stated previously, the number of
portions storage 27 byprocessor 40 may vary without departing from this embodiment. - Thus, one system embodiment may comprise a circuit board that comprises a circuit card slot, and a circuit card capable of being coupled to the slot. The card may comprise circuitry to generate, if an amount of data requested to be transferred by a data transfer request according to a first protocol exceeds a maximum data transfer amount permitted to be requested by a single data transfer request according to a second protocol, one data transfer request according to the second protocol and a data structure. The one data transfer request may request transfer of a portion of the data, and the data structure may comprise one or more values identifying, at least in part, another portion of the data. The circuitry also may be capable of modifying, at least in part, another data structure based, at least in part, upon the one or more values. The another data structure may comprise, prior to the modifying, at least in part, of the another data structure, one or more other values indicating, at least in part, one or more parameters of the one data transfer request.
- These features of this system embodiment may permit fewer data transfer requests according to the first protocol to be generated and issued compared to the prior art. Advantageously, this may reduce the amount of processing resources that may be consumed to generate data transfer requests according to the first protocol. Additionally, these features of this system embodiment may obviate generating and storing in memory a linked list of separate data transfer requests according to the second protocol, may permit data comprised in the data structures of this system embodiment to be loaded into memory more efficiently compared to the prior art, and may permit these data structures to be modified, at least in part, and reused, at least in part. Advantageously, these features of this system embodiment may permit the amount of memory consumed to implement this system embodiment to be reduced, may reduce the amount of memory processing, and may permit memory resources (e.g., cache memory resources) to be used more efficiently compared to the prior art.
- The terms and expressions which have been employed herein are used as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding any equivalents of the features shown and described (or portions thereof), and it is recognized that various modifications are possible within the scope of the claims. Accordingly, the claims are intended to cover all such equivalents.
Claims (16)
1. A method comprising:
receiving a single data transfer request according to a first protocol, the single data request identifying an amount of data to be transferred;
determining a number of data transfer requests according to a second protocol required to transfer the amount of data; and
storing one or more values in a data structure for providing one or more other values indicating parameters of any data transfer request according to the second protocol.
2. The method of claim 1 , further comprising:
issuing the data transfer requests according to the second protocol to storage.
3. The method of claim 1 , wherein:
the first protocol comprises a Small Computer Systems Interface (SCSI) protocol; and
the second protocol comprises a Serial Advanced Technology Attachment (SATA) protocol.
4. The method of claim 1 , further comprising:
issuing one data transfer request according to the first protocol; and
after the modifying, at least in part, of the data structure, issuing another data transfer request according to the second protocol, the another data structure comprising, after the modifying, at least in part, of the data structure, one or more additional values indicating, at least in part, one or more parameters of another data transfer request.
5. An apparatus comprising:
circuitry to generate, receiving a single data transfer request according to a first protocol, the single data request identifying an amount of data to be transferred, determining a number of data transfer requests according to a second protocol required to transfer the amount of data and storing one or more values in a data structure for providing one or more other values indicating parameters of any data transfer request according to the second protocol.
6. The apparatus of claim 5 , wherein:
the circuitry is capable of issuing the data transfer requests according to the second protocol to storage.
7. The apparatus of claim 5 , wherein:
the first protocol comprises a Small Computer Systems Interface (SCSI) protocol; and
the second protocol comprises a Serial Advanced Technology Attachment (SATA) protocol.
8. The apparatus of claim 5 , wherein:
the circuitry is also capable of issuing one data transfer request according to the first protocol and after the modifying, at least in part, of the data structure, issuing another data transfer request according to the second protocol, the another data structure comprising, after the modifying, at least in part, of the data structure, one or more additional values indicating, at least in part, one or more parameters of another data transfer request.
9. An article including a machine-accessible medium having associated information, wherein the information, when accessed, results in a machine performing:
receiving a single data transfer request according to a first protocol, the single data request identifying an amount of data to be transferred;
determining a number of data transfer requests according to a second protocol required to transfer the amount of data; and
storing one or more values in a data structure for providing one or more other values indicating parameters of any data transfer request according to the second protocol.
10. The article of claim 9 , further comprising:
issuing the data transfer requests according to the second protocol to storage.
11. The article of claim 9 , wherein:
the first protocol comprises a Small Computer Systems Interface (SCSI) protocol; and
the second protocol comprises a Serial Advanced Technology Attachment (SATA) protocol.
12. The article of claim 9 , further comprising:
issuing the one data transfer request; and
after the modifying, at least in part, of the another data structure, issuing another data transfer request according to the second protocol, the another data structure comprising, after the modifying, at least in part, of the another data structure, one or more additional values indicating, at least in part, one or more parameters of another data transfer request.
13. The article of claim 9 , further comprising:
issuing one data transfer request according to the first protocol; and
after the modifying, at least in part, of the data structure, issuing another data transfer request according to the second protocol, the another data structure comprising, after the modifying, at least in part, of the data structure, one or more additional values indicating, at least in part, one or more parameters of another data transfer request.
14. A system comprising:
a magnetic storage device; and
a circuit card capable of being coupled to the magnetic storage device, the card comprising circuitry to generate receiving a single data transfer request according to a first protocol, the single data request identifying an amount of data to be transferred, determining a number of data transfer requests according to a second protocol required to transfer the amount of data and storing one or more values in a data structure for providing one or more other values indicating parameters of any data transfer request according to the second protocol.
15. The system of claim 14 , further comprising:
storage coupled to the card, the circuitry being capable of issuing the data transfer request according to the second protocol to the magnetic storage device.
16. The system of claim 14 , wherein:
the magnetic storage device is capable of executing the data transfer request according to the second protocol.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/372,646 US20060155888A1 (en) | 2003-09-10 | 2006-03-10 | Request conversion |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/659,959 US7032042B2 (en) | 2003-09-10 | 2003-09-10 | Request conversion |
US11/372,646 US20060155888A1 (en) | 2003-09-10 | 2006-03-10 | Request conversion |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/659,959 Continuation US7032042B2 (en) | 2003-09-10 | 2003-09-10 | Request conversion |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060155888A1 true US20060155888A1 (en) | 2006-07-13 |
Family
ID=34227020
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/659,959 Expired - Fee Related US7032042B2 (en) | 2003-09-10 | 2003-09-10 | Request conversion |
US11/372,646 Abandoned US20060155888A1 (en) | 2003-09-10 | 2006-03-10 | Request conversion |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/659,959 Expired - Fee Related US7032042B2 (en) | 2003-09-10 | 2003-09-10 | Request conversion |
Country Status (1)
Country | Link |
---|---|
US (2) | US7032042B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281054B2 (en) * | 2010-08-25 | 2012-10-02 | Lsi Corporation | Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication |
US8578069B2 (en) * | 2012-04-04 | 2013-11-05 | International Business Machines Corporation | Prefetching for a shared direct memory access (DMA) engine |
US10581905B2 (en) * | 2014-04-11 | 2020-03-03 | Hdiv Security, S.L. | Detection of manipulation of applications |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555380A (en) * | 1991-04-11 | 1996-09-10 | Nec Corporation | Data transfer system with buffer request including block length to update the buffer pointer prior to transferring of the block |
US5572659A (en) * | 1992-05-12 | 1996-11-05 | International Business Machines Corporation | Adapter for constructing a redundant disk storage system |
US6047340A (en) * | 1996-11-20 | 2000-04-04 | Matsushita Electric Industrial Co., Ltd. | Method for transmitting data, and apparatus for transmitting data and medium |
US20040081179A1 (en) * | 2002-10-23 | 2004-04-29 | Gregorcyk Arthur J. | Method and system for selecting between serial storage buses using data signals of the buses |
US6802064B1 (en) * | 1999-03-26 | 2004-10-05 | Kabushiki Kaisha Toshiba | Data transfer request processing scheme for reducing mechanical actions in data storage system |
-
2003
- 2003-09-10 US US10/659,959 patent/US7032042B2/en not_active Expired - Fee Related
-
2006
- 2006-03-10 US US11/372,646 patent/US20060155888A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555380A (en) * | 1991-04-11 | 1996-09-10 | Nec Corporation | Data transfer system with buffer request including block length to update the buffer pointer prior to transferring of the block |
US5572659A (en) * | 1992-05-12 | 1996-11-05 | International Business Machines Corporation | Adapter for constructing a redundant disk storage system |
US6047340A (en) * | 1996-11-20 | 2000-04-04 | Matsushita Electric Industrial Co., Ltd. | Method for transmitting data, and apparatus for transmitting data and medium |
US6802064B1 (en) * | 1999-03-26 | 2004-10-05 | Kabushiki Kaisha Toshiba | Data transfer request processing scheme for reducing mechanical actions in data storage system |
US20050027936A1 (en) * | 1999-03-26 | 2005-02-03 | Kabushiki Kaisha Toshiba | Data transfer request processing scheme for reducing mechanical actions in data storage system |
US20040081179A1 (en) * | 2002-10-23 | 2004-04-29 | Gregorcyk Arthur J. | Method and system for selecting between serial storage buses using data signals of the buses |
Also Published As
Publication number | Publication date |
---|---|
US7032042B2 (en) | 2006-04-18 |
US20050055480A1 (en) | 2005-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7984237B2 (en) | Integrated circuit capable of pre-fetching data | |
US7640481B2 (en) | Integrated circuit having multiple modes of operation | |
US7206875B2 (en) | Expander device capable of persistent reservations and persistent affiliations | |
US6813688B2 (en) | System and method for efficient data mirroring in a pair of storage devices | |
US7421517B2 (en) | Integrated circuit having multiple modes of operation | |
US8145828B2 (en) | Flash memory-mounted storage apparatus | |
US8271748B2 (en) | Generating and/or receiving, at least one data access request | |
US7716421B2 (en) | System, method and apparatus to aggregate heterogeneous raid sets | |
US20050223181A1 (en) | Integrated circuit capable of copy management | |
EP1646951B1 (en) | Intermediate station packet forwarding check | |
US7774575B2 (en) | Integrated circuit capable of mapping logical block address data across multiple domains | |
US7370128B2 (en) | Expander device capable of communication protocol translation | |
US6918020B2 (en) | Cache management | |
US20060123167A1 (en) | Request conversion | |
US20060155888A1 (en) | Request conversion | |
US7418545B2 (en) | Integrated circuit capable of persistent reservations | |
US20040044864A1 (en) | Data storage | |
US7266711B2 (en) | System for storing data within a raid system indicating a change in configuration during a suspend mode of a device connected to the raid system | |
US7418548B2 (en) | Data migration from a non-raid volume to a raid volume | |
US20060277326A1 (en) | Data transfer system and method | |
US20060047934A1 (en) | Integrated circuit capable of memory access control | |
US20060143331A1 (en) | Race condition prevention |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |