Claims
- 1. Apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a network subsystem for receiving and transmitting network service requests using the network protocol; and a service subsystem, coupled to the network subsystem, for satisfying the network service requests; wherein at least one of the network subsystem and the service subsystem is hardware-implemented.
- 2. Apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a network subsystem for receiving and transmitting network service requests using the network protocol; and a service subsystem, coupled to the network subsystem, for satisfying the network service requests; wherein one of the network subsystem and the service subsystem is hardware-implemented and the other of the network subsystem and the service subsystem is hardware accelerated.
- 3. Apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a hardware-implemented network subsystem for receiving and transmitting network service requests using the network protocol; and a hardware-implemented service subsystem, coupled to the network subsystem, for satisfying the network service requests.
- 4. Apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a network subsystem for receiving and transmitting network service requests using the network protocol; and a hardware-accelerated service subsystem, coupled to the network subsystem, for satisfying the network service requests.
- 5. Apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a hardware-accelerated network subsystem for receiving and transmitting network service requests using the network protocol; and a service subsystem, coupled to the network subsystem, for satisfying the network service requests; wherein the service requests include one of reading and writing data to long-term electronic storage.
- 6. Apparatus according to any of claims 1 through 4, wherein the service requests include one of reading and writing data to long-term electronic storage.
- 7. Apparatus according to any of claim 5 or 6, wherein the long-term storage is network disk storage accessible to computers over the network.
- 8. Apparatus according to any of claim 5 or 6, wherein the long-term storage is local disk storage that is accessible to a local computer but not to any other computers over the network.
- 9. Apparatus according to any of claim 5 or 6, wherein the long-term storage is associated with the provision of E-Mail service over the network.
- 10. Apparatus according to any of claim 5 or 6, wherein the long-term storage provides access to web pages over the network.
- 11. Apparatus according to any of claims 1 through 5, wherein the service requests may involve access of data in a storage system, and the service subsystem also includes a hardware-implemented module for managing storage of the data in the storage system.
- 12. Apparatus according to claim 11, such apparatus being a file server, wherein the data in the storage system are arranged in files, the service requests may involve requests for files in the storage system, and the service subsystem also includes a hardware-implemented module for managing a file system associated with the storage system.
- 13. Apparatus according to claim 12, wherein the protocol includes a file system protocol, and the file system protocol defining operations including file read and file write.
- 14. Apparatus according to claim 11, such apparatus being a web server, wherein the data in the storage system may include web pages, and the service requests may involve requests for web pages in the storage system.
- 15. Apparatus according to any of claim 1, 2, 3, 4, 5, 11, 12, or 14, wherein the protocol includes IP.
- 16. Apparatus according to any of claim 11 or 12, wherein the storage system has a storage protocol and the service subsystem includes a hardware-implemented module for interfacing with the storage system.
- 17. A subsystem for receiving and transmitting data over a network, the network using a protocol having at least one of layers 3 and 4, the subsystem comprising:
a receiver that receives encapsulated data from the network and de-encapsulates such data in accordance with the protocol; and a transmitter that encapsulates data in accordance with the protocol and transmits the encapsulated data over the network; wherein at least one of the receiver and the transmitter is hardware-implemented.
- 18. A subsystem for receiving and transmitting data over a network, the network using a protocol having at least one of layers 3 and 4, the subsystem comprising:
a receiver that receives encapsulated data from the network and de-encapsulates such data in accordance with the protocol; and a transmitter that encapsulates data in accordance with the protocol and transmits the encapsulated data over the network; wherein at least one of the receiver and the transmitter is hardware-accelerated.
- 19. A subsystem according to any of claim 17 or 18, wherein the protocol is TCP/IP.
- 20. A subsystem according to claim 19, wherein the data are received over the network in packets, each packet having a protocol header, the subsystem further comprising:
a connection identifier that determines a unique connection from information contained within the protocol header of each packet received by the receiver.
- 21. A subsystem according to any of claims 19 through 20, wherein encapsulated data are associated with a network connection, the subsystem further comprising:
a memory region, associated with the network connection, that stores the state of the connection.
- 22. A service subsystem for interfacing a storage arrangement with a network over which may be generated a storage access request, the subsystem comprising:
a service module that receives network service requests and fulfills such service requests and in doing so may issue data storage access requests; a file system module, coupled to the service module, that receives data storage access requests from the service module and fulfills such storage access requests and in doing so may issue storage arrangement access requests; a storage module, coupled to the file system module, that receives storage arrangement access requests from the file system module and controls the storage arrangement to fulfill such storage arrangement access requests; wherein at least one of the modules is hardware-implemented.
- 23. A service subsystem for interfacing a storage system with a network over which may be generated a storage access request, the subsystem comprising:
a service module that receives network service requests and fulfills such service requests and in doing so may issue data storage access requests; a file system module, coupled to the service module, that receives data storage access requests from the service module and fulfills such storage access requests and in doing so may issue storage arrangement access requests; a storage module, coupled to the file system module, that receives storage arrangement access requests from the file system module and controls the storage arrangement to fulfill such storage arrangement access requests; wherein at least one of the modules is hardware-accelerated.
- 24. A service subsystem according to any of claims 22 and 23, wherein the service module includes:
a receive control engine that receives network service requests, determines whether such requests are appropriate, and if so, responds if information is available, and otherwise issues a data storage access request; and a transmit control engine that generates network service responses based on instructions from the receive control engine, and, in the event that there is a data storage access response to the data storage access request, processes the data storage access response; wherein at least one of the engines is hardware-implemented.
- 25. A service subsystem according to any of claims 22 and 23, wherein the service module includes:
a receive control engine that receives network service requests, determines whether such requests are appropriate, and if so, responds if information is available, and otherwise issues a data storage access request; and a transmit control engine that generates network service responses based on instructions from the receive control engine, and, in the event that there is a data storage access response to the data storage access request, processes the data storage access response; wherein at least one of the engines is hardware-accelerated.
- 26. A service subsystem according to any of claims 22 and 23, wherein the service subsystem is integrated directly in the motherboard of a computer.
- 27. A service subsystem according to any of claims 22 and 23, wherein the service subsystem is integrated into an adapter card that may be plugged into a computer.
- 28. A service module that receives network service requests and fulfills such service requests, such module comprising:
a receive control engine that receives network service requests, determines whether such requests are appropriate, and if so, responds if information is available, and otherwise issues a data storage access request; and a transmit control engine that generates network service responses based on instructions from the receive control engine, and, in the event that there is a data storage access response to the data storage access request, processes the data storage access response; wherein at least one of the engines is hardware-implemented.
- 29. A service module that receives network service requests and fulfills such service requests, such module comprising:
a receive control engine that receives network service requests, determines whether such requests are appropriate and if so, responds if information is available, and otherwise issues a data storage access request; and a transmit control engine that generates network service responses based on instructions from the receive control engine, and, in the event that there is a data storage access response to the data storage access request, processes the data storage access response; wherein at least one of the engines is hardware-accelerated.
- 30. A service module according to any of claim 28 or 29, wherein the network service requests are in the CIFS protocol.
- 31. A service module according to any of claim 28 or 29, wherein the network service requests are in the SMB protocol.
- 32. A service module according to any of claim 28 or 29, wherein the network service requests are in the HTTP protocol.
- 33. A service module according to any of claim 28 or 29, wherein the network service requests are in the NFS protocol.
- 34. A service module according to any of claim 28 or 29, wherein the network service requests are in the FTP protocol.
- 35. A service module according to any of claim 28 or 29, wherein the network service requests are in the SMTP protocol.
- 36. A service module according to any of claim 28 or 29, further comprising:
an authentication engine that determines whether a network request received by the receiver has been issued from a source having authority to issue the request.
- 37. A service module according to any of claims 28 through 36, wherein the authentication engine determines whether a network request received by the receiver has been issued from a source having authority to perform the operation requested.
- 38. A service module according to any of claims 28 through 37 wherein the service module is integrated directly in the motherboard of a computer.
- 39. A service module according to any of claims 28 through 37 wherein the service module is integrated into an adapter card that may be plugged into a computer.
- 40. A file system module that receives data storage access requests and fulfills such data storage access requests, the module comprising:
a receiver that receives and interprets such data storage access requests and in doing so may issue storage device access requests; a transmitter, coupled to the receiver, that constructs and issues data storage access responses, wherein such responses include information when appropriate based on responses to the storage device access requests; wherein at least one of the receiver and the transmitter is hardware-implemented.
- 41. A file system module that receives data storage access requests and fulfills such data storage access requests, the module comprising:
a receiver that receives and interprets such data storage access requests and in doing so may issue storage device access requests; a transmitter, coupled to the receiver, that constructs and issues data storage access responses, wherein such responses include information when appropriate based on responses to the storage device access requests; wherein at least one of the receiver and the transmitter is hardware-accelerated.
- 42. A file system module according to any of claim 40 or 41, wherein the storage device access requests are consistent with the protocol used by a storage device to which the module may be coupled.
- 43. A file system module according to claim 42, wherein the protocol is NTFS.
- 44. A file system module according to claim 42, wherein the protocol is HPFS.
- 45. A file system module according to claim 42, wherein the protocol is FAT.
- 46. A file system module according to claim 42, wherein the protocol is FAT16.
- 47. A file system module according to claim 42, wherein the protocol is FAT32.
- 48. A file system module according to claim 42, further comprising a file table cache, coupled to the receiver, that stores a table defining the physical location of files in a storage device to which the module may be coupled.
- 49. A file system module according to claim 48, wherein the protocol does not require files to be placed in consecutive physical locations in a storage device.
- 50. A file system module according to claim 42, wherein the file system module is integrated directly in the motherboard of a computer.
- 51. A file system module according to claim 42, wherein the file system module is integrated into an adapter card that may be plugged into a computer.
- 52. A storage module that receives storage device access requests from a request source and communicates with a storage device controller to fulfill such storage access requests, the module comprising:
a storage device request interface that receives such storage device access requests and translates them into a format suitable for the storage device controller; and a storage device acknowledge interface that takes the responses from the storage device controller and translates such responses into a format suitable for the request source; wherein at least one of the storage device request interface and the storage device acknowledge interface is hardware-implemented.
- 53. A storage module that receives storage device access requests from a request source and communicates with a storage device controller for a storage device to fulfill such storage access requests, the module comprising:
a storage device request interface that receives such storage device access requests and translates them into a format suitable for the storage device controller; and a storage device acknowledge interface that takes the responses from the storage device controller and translates such responses into a format suitable for the request source; wherein at least one of the storage device request interface and the storage device acknowledge interface is hardware-accelerated.
- 54. A storage module according to any of claim 52 or 53, further comprising: a cache controller that maintains a local copy of a portion of data contained on the storage device to allow fast-read access to the portion of data.
- 55. A storage module according to any of claim 52 or 53, wherein the storage device request interface and the storage device acknowledge interface are coupled to a port permitting communication with the storage device controller over a fiber-optic channel.
- 56. A storage module according to any of claim 52 or 53, wherein the storage device request interface and the storage device acknowledge interface are coupled to a port permitting communication with the storage device controller utilizing a SCSI-related protocol.
- 57. A storage module according to any of claim 52 or 53, wherein the storage module is integrated directly in the motherboard of a computer.
- 58. A storage module according to any of claim 52 or 53, wherein the storage module is integrated into an adapter card that may be plugged into a computer.
- 59. A system for interfacing a storage arrangement with a line on which may be placed a storage access request, the system comprising:
a service receive block, coupled to the storage arrangement, that processes the storage access request, generates where necessary an access to the storage arrangement, and causes the generation of a response; a file table cache, coupled to the receive block, that stores a table defining the physical location of files in the storage arrangement; and a service transmit block, coupled to the service receive block, for transmitting the response; wherein at least one of the service receive block and the service transmit block is hardware-implemented.
- 60. A system for interfacing a storage arrangement with a line on which may be placed a storage access request, the system comprising:
a service receive block, coupled to the storage arrangement, that processes the storage access request, and generates where necessary an access to the storage arrangement; a file table cache, coupled to the receive block, that stores a table defining the physical location of files in the storage arrangement; and a service transmit block, coupled to the service receive block and to the storage arrangement, for constructing and transmitting a response; wherein at least one of the service receive block and the service transmit block is hardware-accelerated.
- 61. A system according to any of claim 59 or 60, further comprising: response information memory, coupled to each of the service receive block and the service transmit block, which memory stores information present in a header associated the request, which information is used by the service transmit block in constructing the response.
- 62. A system according to any of claim 59 or 60, wherein the storage access request is a network request.
- 63. A system according to any of claim 59 or 60, wherein the storage access request is a generated by a local processor to which the line is coupled.
- 64. A process for handling storage access requests from multiple clients, the process comprising:
testing for receipt of a storage access request from any of the clients; and testing for completion of access to storage pursuant to any pending request; wherein testing for receipt of a storage access request and testing for completion of access to storage are performed in a number of threads independent of the number of clients.
- 65. A process according to claim 64, wherein the process also includes, conditioned on a positive determination from testing for receipt of a request, processing the request that gave rise to the positive determination and initiating storage access pursuant to such request.
- 66. A process according to any of claim 64 or 65, wherein the process also includes, conditioned on a positive determination from testing for completion of access to storage pursuant to a pending request, sending a reply to the client issuing such pending request.
- 67. A process according to any of claim 64, 65, or 66, wherein the number of threads is fewer than three.
- 68. A process according to claim 67, wherein the number of threads is one.
- 69. Scalable apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a first plurality of network subsystems for receiving and transmitting network service requests using the network protocol; a second plurality of service subsystems, for satisfying the network service requests; each one of the network subsystems and the service subsystems being one of hardware-implemented or hardware-accelerated; and an interconnect coupling each of the first plurality of network subsystems to each of the second plurality of service subsystems.
- 70. Apparatus according to claim 69, wherein the interconnect is a switch.
- 71. Apparatus according to claim 69, wherein the interconnect is a bus.
- 72. A scalable service subsystem for interfacing a storage arrangement with a network over which may be generated a storage access request, the subsystem comprising:
a first plurality of service modules that receive network service requests and fulfill such service requests and in doing so may issue data storage access requests; a second plurality of file system modules that receive data storage access requests and fulfill such storage access requests and in doing so may issue storage arrangement access requests; each one of the service modules and the file system modules being one of hardware-implemented or hardware-accelerated; and an interconnect coupling each of the first plurality of service modules to each of the second plurality of file system modules.
- 73. A scalable service subsystem according to claim 72, wherein the interconnect is a switch.
- 74. A scalable service subsystem according to claim 72, wherein the interconnect is a bus.
- 75. A scalable service subsystem according to claim 72, further comprising:
a third plurality of storage modules that receive storage arrangement access requests controls the storage arrangement to fulfill such storage arrangement access requests; each one of the storage modules being one of hardware-implemented or hardware-accelerated; and a second interconnect coupling each of the file system modules to each of the storage modules.
- 76. A scalable service subsystem according to claim 72, wherein each of the interconnect and the second interconnect is a switch.
- 77. A scalable service subsystem according to claim 72, wherein each of the interconnect and the second interconnect is a bus.
- 78. Apparatus for handling service requests over a network, wherein the network utilizes a protocol, the apparatus comprising:
a network subsystem (a) for receiving, via a network receive interface, service requests using the network protocol and forwarding such requests to a service output and (b) for receiving, via a service input, data to satisfy network requests and transmitting, via a network transmit interface, such data using the network protocol; and a service subsystem having (a) a service request receive interface coupled to the service output of the network subsystem and (b) a service request transmit interface coupled to the service input of the network subsystem for delivering data to the network subsystem satisfying the network service requests; so that a first data path runs in a first direction from the network receive interface though the network subsystem via the service output to the service subsystem and a second data path runs in a second direction from the service subsystem into the network subsystem at the service input and through the network subsystem to the network transmit interface.
- 79. Apparatus according to claim 78, wherein the service subsystem includes a service module, a file system module, and a storage module, wherein:
the service module is coupled to the network subsystem, the file system module is coupled to the service module, the storage module is coupled to the file system module and has an interface with a file storage arrangement; and each of the service module, the file system module, and the storage module has (i) a first input and a first output corresponding to the first data path and (ii) a second input and a second output corresponding to the second data path.
- 80. Apparatus according to claim 79, further comprising at least a first circuit board and a second circuit board, wherein the network subsystem is implemented on the first circuit board and the file system module is implemented on the second circuit board.
Parent Case Info
[0001] The present application is a continuation-in-part of U.S. patent application Ser. No. 09/418,558, filed Oct. 14, 1999 which is hereby incorporated herein by reference.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09418558 |
Oct 1999 |
US |
Child |
09879798 |
Jun 2001 |
US |