Apparatus and method for hardware implementation or acceleration of operating system functions
First Claim
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 a first predetermined set of the network service requests;
wherein the network subsystem and the service subsystem are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to the service subsystem, and wherein the service subsystem includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function.
5 Assignments
0 Petitions
Accused Products
Abstract
An apparatus in one embodiment handles service requests over a network, wherein the network utilizes a protocol. In this aspect, the apparatus includes: 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. At least one of the network subsystem and the service subsystem is hardware-implemented; the other of the network subsystem and the service subsystem may optionally be hardware-accelerated. A variety of related embodiments are also provided, including file servers and web servers.
-
Citations
78 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 a first predetermined set of the network service requests;
wherein the network subsystem and the service subsystem are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to the service subsystem, and wherein the service subsystem includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 72, 73, 75, 76)
a first unidirectional communication path from the network subsystem to the service subsystem; and
a second unidirectional communication path from the service subsystem to the network subsystem.
-
-
43. Apparatus according to any of claims 1, 3, or 5, wherein the service subsystem comprises a service module that receives network service requests from the network subsystem 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 a storage arrangement to fulfill such storage arrangement access requests;
wherein at least one of the modules includes hardware that operates outside the immediate control of a software program.
-
-
44. Apparatus according to claim 43, 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 includes hardware that operates outside the immediate control of a software program.
-
-
45. Apparatus according to claim 44, wherein the service module includes:
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.
-
46. Apparatus according to claim 45, 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.
-
47. Apparatus according to claim 43, wherein the file system module includes:
-
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 includes hardware that operates outside the immediate control of a software program.
-
-
48. Apparatus according to claim 47, wherein the storage device access requests are consistent with the protocol used by a storage device to which the module may be coupled.
-
49. Apparatus according to claim 48, wherein the protocol is at least one of:
-
NTFS;
HPFS;
FAT;
FAT16; and
FAT32.
-
-
50. Apparatus according to claim 48, 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.
-
51. Apparatus according to claim 50, wherein the protocol does not require files to be placed in consecutive physical locations in a storage device.
-
52. Apparatus according to claim 43, wherein the storage module includes:
-
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 includes hardware that operates outside the immediate control of a software program.
-
-
53. Apparatus according to claim 52, wherein the storage module further includes:
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.
-
54. Apparatus according to claim 52, 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.
-
55. Apparatus according to claim 52, 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.
-
56. Apparatus according to any of claims 1, 2, 3, 4 or 5, wherein the service subsystem is integrated directly in the motherboard of a computer.
-
57. Apparatus according to any of claims 1, 2, 3, 4, or 5, wherein the service subsystem is integrated into an adapter card that may be plugged into a computer.
-
58. Apparatus according to any of claims 1, 2, 3, 4, or 5, wherein the first predetermined set of network service requests include at least one of:
-
CIFS requests;
SMB requests;
HTTP requests;
NFS requests;
FTP requests; and
SMTP requests.
-
-
59. Apparatus according to any of claims 1, 3, or 5, wherein the service subsystem comprises:
-
a service receive block, coupled to a storage arrangement, that processes a storage access request from the network subsystem, 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 to the network subsystem;
wherein at least one of the service receive block and the service transmit block includes hardware that operates outside the immediate control of a software program.
-
-
60. Apparatus according to claim 59, wherein the service subsystem further includes:
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.
-
61. Apparatus according to claim 59, wherein the storage access request is a network request.
-
62. Apparatus according to claim 59, wherein the storage access request is a generated by a local processor to which the line is coupled.
-
72. Apparatus according to any of claims 1, 2, 3, 4, 5, 63, or 66, wherein the hardware performs a plurality of subsystem functions.
-
73. Apparatus according to any of claims 1, 3 or 5 wherein the service subsystem is hardware-implemented so as to include dedicated hardware that operates outside the immediate control of a software program and performs at least one major subsystem function.
-
75. Apparatus according to any of claims 1, 3, or 5, wherein the service subsystem dedicated hardware includes:
-
a receiver that receives service requests for data access from the network subsystem over the dedicated fast communication interface and transfers corresponding storage access requests to a storage interface; and
a transmitter that receives storage access responses from the storage interface and transfers, over the dedicated fast communication interface, corresponding service responses to the network subsystem.
-
-
76. Apparatus according to any of claims 1, 2, 3, 4, 5, 63, or 66, wherein the at least one subsystem function performed by the hardware includes data passing.
-
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 a first predetermined set of the network service requests;
wherein the network subsystem and the service subsystem are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to the service subsystem, and wherein the network subsystem includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 39, 40, 41, 42, 74, 77, 78)
processing non-TCP/IP formatted data.
-
-
25. Apparatus according to claim 21, wherein the predetermined set of minor subsystem functions includes:
-
establishing a TCP/IP connection; and
configuring a TCP/IP connection table for use by the hardware when forwarding data.
-
-
26. Apparatus according to claim 25, wherein information contained in the connection table associates an established TCP/IP connection with a destination for the data.
-
27. Apparatus according to claim 26, wherein the destination may be one of the network subsystem processor and the service subsystem.
-
28. Apparatus according to claim 21, wherein the at least one subsystem function performed by the network subsystem hardware includes forwarding the first predetermined set of network service requests to the service subsystem without involving the network subsystem processor.
-
39. Apparatus according to any of claims 2, 3, or 4, wherein the network subsystem dedicated hardware includes:
-
a receiver that interprets network service requests received from a network interface in accordance with the protocol and transfers, over the dedicated fast communication interface, corresponding service requests for data access to the service subsystem; and
a transmitter that forms network service responses based on service responses received from the service subsystem over the dedicated fast communication interface and transfers the service responses to the network interface.
-
-
40. Apparatus according to any of claims 2, 3, or 4, wherein the network subsystem comprises:
-
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 includes hardware that operates outside the immediate control of a software program.
-
-
41. Apparatus according to claim 40, wherein the service requests are received over the network in packets, each packet having a protocol header, and wherein the network subsystem further includes:
a connection identifier that determines a unique connection from information contained within the protocol header of each packet received by the receiver.
-
42. Apparatus according to claim 41, wherein the network subsystem further includes:
a memory region, associated with the network connection, that stores the state of the connection.
-
74. Apparatus according to any of claims 2, 3, or 4, wherein the at least one major subsystem function performed by the network subsystem dedicated hardware includes:
-
receiving network service requests from a network interface and transferring, over the dedicated fast communication interface, corresponding service requests for data access to the service subsystem; and
receiving service responses from the service subsystem over the dedicated fast communication interface and transferring corresponding network service responses to the network interface.
-
-
77. Apparatus according to any of claims 2, 3, or 4, wherein the at least one subsystem function performed by the network subsystem hardware includes IP processing.
-
78. Apparatus according to claim 77, wherein the IP processing may include reassembly of fragmented IP packets.
-
3. 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 a first predetermined set of the network service re quests;
wherein the network subsystem and the service subsystem are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to the service subsystem, and wherein each of the network subsystem and the service subsystem includes dedicated hardware that operate outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function.
-
-
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 a first predetermined set of the network service requests;
wherein the network subsystem and the service subsystem are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to the service subsystem, and wherein the network subsystem includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function.
-
-
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 a first predetermined set of the network service requests;
wherein the network subsystem and the service subsystem are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to the service subsystem, and wherein the service subsystem includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function.
-
-
63. Scalable apparatus for handling service requests over a 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 a first predetermined set of the network service requests;
wherein the network subsystems and the service subsystems are interconnected by a dedicated fast communication interface for forwarding at least one of the first predetermined set of service requests to one of the plurality of service subsystems, and wherein at least one of the network subsystems and the service subsystems includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function. - View Dependent Claims (64, 65)
-
-
66. A scalable service subsystem for interfacing a storage arrangement with a network over which a storage access request is generated, the subsystem comprising:
-
a first plurality of service modules that receive network service requests and fulfill such service requests and in doing so 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 issue storage arrangement access requests;
wherein the service modules and the file system modules are interconnected by a dedicated fast communication interface for forwarding the data storage access requests to the file system modules, and wherein at least one of the service modules and the file system modules includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function. - View Dependent Claims (67, 68, 69, 70, 71)
a third plurality of storage modules that receive storage arrangement access requests and control the storage arrangement to fulfill such storage arrangement access requests;
wherein the file system modules and the storage modules are interconnected by a second dedicated fast communication interface for forwarding the storage arrangement access requests to the storage modules, and wherein at least one of the storage modules includes dedicated hardware that operates outside the immediate control of a software program, the dedicated hardware including specialized circuitry for performing at least one major subsystem function.
-
-
70. A scalable service subsystem according to claim 69, wherein the second dedicated fast communication interface includes a switch.
-
71. A scalable service subsystem according to claim 69, wherein the second dedicated fast communication interface includes a bus.
Specification