US20030208599A1 - Server device and communication connection scheme using network interface processors - Google Patents

Server device and communication connection scheme using network interface processors Download PDF

Info

Publication number
US20030208599A1
US20030208599A1 US10438937 US43893703A US2003208599A1 US 20030208599 A1 US20030208599 A1 US 20030208599A1 US 10438937 US10438937 US 10438937 US 43893703 A US43893703 A US 43893703A US 2003208599 A1 US2003208599 A1 US 2003208599A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
network interface
interface processor
local
network
main
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
Application number
US10438937
Inventor
Shigehiro Asano
Tatsunori Kanai
Shinichi Kanno
Seiji Maeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Abstract

A server device and a communication connection scheme capable of expanding the memory bandwidth and thereby expanding the power to transmit Web data to the network are disclosed. Network cards are detachably attached to a host machine (main machine). Each network card contains a processor, a memory, and a network interface unit, where data are transmitted to the network from a memory on the network card and the memory bandwidth expansion is realized by the presence of a plurality of network cards. In addition, using a memory of the network card as a cache, the load on the host machine is reduced by transmitting data from this memory to the network when the data exists on the memory and a certain condition is satisfied.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention relates to a server device and a communication connection scheme which are suitable for the Web server. [0002]
  • 2. Description of the Background Art [0003]
  • In conjunction with the rapid progress of information sharing utilizing Web, an amount of data outputted from a Web server to a network has been kept increasing. Conventionally, the Web server has been often realized by a general purpose computer such as workstation or PC. [0004]
  • The main function of the Web server is to convert the content of a file stored in a memory device such as disk device into a prescribed format and outputting it to the network. This function largely relies on a function for moving data within a memory rather than computations by a processor. Also, in general, an amount of a working set of data of the Web server is far larger than that of a cache memory of a processor so that it cannot be accommodated within a cache memory of a processor. [0005]
  • In view of these factors, the realization of the Web server by a general purpose computer relies on data transfer power among processor powers, so that it is impossible to realize a sufficient performance when a memory bandwidth is narrow. Consequently, in order to realize a sufficient Web server performance, it is essential to expand the memory bandwidth. [0006]
  • However, it has been practically difficult to expand the memory bandwidth of such a general purpose computer because the memory bandwidth in such a general purpose computer is determined by the number of pins that dictates how many data can be read out in parallel in a memory (usually implemented in a form of SIMM (Single In-line Memory Module)) connected to a memory controller and the number of pins in the memory controller is limited by the specification and the like so that it has been difficult from a viewpoint of cost to increase the number of data that can be read out in parallel by modifying the number of pins. [0007]
  • On the other hand, in order to expand the memory bandwidth, there is a method for providing a plurality of servers on the network. However, according to this method, it is necessary to provide a plurality of server machines so that there is a problem that the cost also increases. Also, the load distribution among Web servers provided on the network is not preferable as it causes the problem that it leads to the degradation of system performance due to traffics required for the purpose of the load distribution on the network. [0008]
  • SUMMARY OF THE INVENTION
  • It is therefore an object of the present invention to provide a server device and a communication connection scheme capable of expanding the memory bandwidth and thereby expanding the power to transmit Web data to the network by adding some hardware to a general purpose computer. [0009]
  • According to one aspect of the present invention there is provided a server device, comprising: a main machine having a main processor for controlling the main machine, and a main memory for storing server data; and a plurality of network interface processor units connected to the main machine, each network interface processor unit having a local processor for controlling each network interface processor unit independently from the main machine, a local memory for storing a part of the server data, and a local network controller for communicating with an external device through a network, wherein the local processor controls the local memory and the local network controller such that a data requested by the external device is transmitted to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied, and requests transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied such that the requested data read out from the main memory is transmitted to the external device through the local network controller. [0010]
  • According to another aspect of the present invention there is provided a network interface processor device to be connected to a main machine of the server device having a main processor for controlling the main machine and a main memory for storing server data, the network interface processor device comprising: a local processor for controlling each network interface processor unit independently from the main machine; a local memory for storing a part of the server data; and a local network controller for communicating with an external device through a network; wherein the local processor controls the local memory and the local network controller such that a data requested by the external device is transmitted to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied, and requests transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied such that the requested data read out from the main memory is transmitted to the external device through the local network controller. [0011]
  • According to another aspect of the present invention there is provided a communication method for a server device formed by a main machine having a main processor for controlling the main machine and a main memory for storing server data, and a plurality of network interface processor units connected to the main machine, each network interface processor unit having a local processor for controlling each network interface processor unit independently from the main machine, a local memory, and a local network controller for communicating through a network, the method comprising the steps of: setting up each network interface processor unit by storing a part of the server data in the local memory; transmitting a data requested by an external device to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied, at one of the network interface processor units; and requesting transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied, and transmitting the requested data read out from the main memory to the external device through the local network controller, at said one of the network interface processor units. [0012]
  • According to another aspect of the present invention there is provided an article of manufacture, comprising: a computer usable medium having computer readable program code means embodied therein for causing a computer to function as a network interface processor device to be connected to a main machine of the server device having a main processor for controlling the main machine and a main memory for storing server data, the network interface processor device having a local processor for controlling each network interface processor unit independently from the main machine, a local memory for storing a part of the server data, and a local network controller for communicating with an external device through a network, the computer readable program code means includes: first computer readable program code means for causing said computer to transmit a data requested by the external device to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied; and second computer readable program code means for causing said computer to request transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied, and transmit the requested data read out from the main memory to the external device through the local network controller. [0013]
  • According to another aspect of the present invention there is provided an article of manufacture, comprising: a computer usable medium having computer readable program code means embodied therein for causing a computer to function as a main machine of the server device having a main processor for controlling the main machine, a main memory for storing server data, and a main network controller for communicating with an external device through a network, the main machine being connected with a plurality of network interface processor units, each network interface processor unit having a local processor for controlling each network interface processor unit independently from the main machine, a local memory for storing a part of the server data, and a local network controller for communicating with the external device through the network, the computer readable program code means includes: first computer readable program code means for causing said computer to select one network interface processor unit among said plurality of network interface processor units according to a prescribed rule upon accepting a request from the external device through the main network controller, such that the selected network interface processor unit transmits a data requested by the external device to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied; and second computer readable program code means for causing said computer to transfer the requested data from the main memory to the selected network interface processor unit when the requested data is not stored in the local memory or the prescribed condition is not satisfied. [0014]
  • Other features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings.[0015]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram showing an exemplary configuration of a server device according to one embodiment of the present invention. [0016]
  • FIG. 2 is a block diagram showing an exemplary internal configuration of a network interface processor in the server device of FIG. 1. [0017]
  • FIG. 3 is a block diagram showing an exemplary internal configuration of a PCI-PCI bridge chip in the network interface processor of FIG. 2. [0018]
  • FIG. 4 is a diagram showing a communication sequence between client and server devices for explaining the operation of the server device of FIG. 1. [0019]
  • FIG. 5 is a block diagram showing an exemplary configuration of a network controller in the server device of FIG. 1 or the network interface processor of FIG. 2. [0020]
  • FIG. 6 is a flow chart for the operation of the server device of FIG. 1 to carry out a re-direction. [0021]
  • FIG. 7 is a flow chart for the operation of the network interface processor of FIG. 2 that is selected to be a re-direction target.[0022]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Referring now to FIG. 1 to FIG. 7, one embodiment of a server device and a communication connection scheme according to the present invention will be described in detail. [0023]
  • In short, according to the present invention, network cards are detachably attached to a host machine (which will also be referred to as a main machine). Each network card contains a processor, a memory, and at least one network interface unit (also referred to as a network controller in the following description), where data are transmitted to the network from a memory on the network card and the memory bandwidth expansion is realized by the presence of a plurality of network cards. [0024]
  • In addition, using a memory of the network card as a cache, the load on the host machine is reduced by transmitting data from this memory to the network when the data exists on the memory and a certain condition is satisfied. Moreover, when a writing with respect to data in the file system of the host machine is made, this fact is notified to the network card, and if there is a copy of that data on the memory, that data on the memory is invalidated so as to maintain the consistency. [0025]
  • FIG. 1 shows an exemplary configuration of a server device according to this embodiment, in which a host CPU [0026] 2, a cache memory 3, and a main memory 4 are connected with each other through a host bus 1 a. This host bus la is also connected with a host side PCI (Peripheral Component Interconnect) bus 1 b through a host-PCI bridge 5, where a network controller 6, network interface processors (abbreviated hereafter as NIP whenever convenient) 7 a, 7 b, . . . , and an SCSI (Small Computer System Interface) controller 8 are connected to this host side PCI bus 1 b.
  • Each network interface processor [0027] 7 is provided in a form of a network card to be detachably attached to a host machine in this embodiment.
  • The network controller [0028] 6 is provided in a form of board or card to be installed on the main machine (host machine), for example. Also, in TCP/IP (Transmission Control Protocol/Internet Protocol) for example, this network controller 6 is allocated with an IP (Internet Protocol) address for uniquely identifying each controller.
  • Note that the PCI buses are used in this embodiment, but the present invention is not necessarily limited to the use of PCI buses and other buses such as VME (Versa Module Europe) buses may be used instead. Also, the PCI bus of the host machine may be further connected with other devices such as network controller board and SCSI board. In addition, the Ethernet is used as a network in this embodiment, but similarly the other network such as those of ATM (Asynchronous Transfer Mode) and FDDI (Fiber Distributed Data Interface) may be used instead. [0029]
  • FIG. 2 shows an exemplary internal configuration of the NIP [0030] 7, which comprises a processor 21, a local memory 22, a network controller 23, and a PCI-PCI bridge chip 24, all of which are connected through an internal PCI bus 11. This internal PCI bus 11 is also connected to the host side PCI bus 1 b of FIG. 1 through the PCI-PCI bridge chip 24. By this PCI-PCI bridge chip 24, the NIP 7 and the host machine are functionally separated so that they can operate without receiving any interferences from each other.
  • The processor [0031] 21 carries out the control of each modules within the NIP 7, independently from the host CPU 2.
  • The network controller [0032] 22 enables communications with external networks, and has equivalent functions as the network controller 6 which is controlled by the host CPU 2.
  • FIG. 3 shows an exemplary internal configuration of the PCI-PCI bridge chip [0033] 24, which has built-in DMA (Direct Memory Access) controllers 31 so that data transfer is possible from either the NIP 7 side or the host machine side by setting data into the DMA controller 31, and outputting data through a FIFO (First-In First-Out) buffer.
  • Now, the operation of the server device in the above described configuration will be described. Here, an exemplary case of communications with a distant client machine through a network using HTTP (Hyper Text Transfer Protocol) will be described. [0034]
  • A request (access) from the network using HTTP is allocated to the network controller corresponding to a particular default IP address. In this case, it may be allocated to the network controller [0035] 23 inside the NIP 7, or to the network controller 6 connected to the host side PCI bus 1 b in the host machine. In this embodiment, it is assumed that an initial access (first access) from the client is to be connected to the network controller 6. Note that the first access may be allocated to the network controller 23 of the NIP 7 instead of the network controller 6 if desired.
  • The network controller [0036] 6 transmits the request received from the network to the host CPU 2. The host CPU 2 then carries out the interpretation as described below, and assigns this request to one of the plurality of NIPs using the re-direct function of HTTP.
  • FIG. 4 shows a communication sequence between the client and server devices. As shown in FIG. 4, the access with respect to an address specified by the client C is connected to the network controller [0037] 6 as an initial request ((1) of FIG. 4). The network controller 6 gives this initial request to the host CPU 2, specifies a specific NIP according to a prescribed condition, and returns to the client C a message containing an IP address corresponding to that specific NIP ((2) of FIG. 4). This message contains a re-direct address such as “http://IP address of the specified NIP/p1.html”, for example. The client C that received this message then changes its connection target to the re-direct target, and issues a request to the re-directed target ((3) of FIG. 4). By this operation, the request is effectively given to the specific NIP.
  • As for the selection of one NIP from a plurality of NIPs [0038] 7 by the host machine, several methods are available. If only the viewpoint of distributing loads uniformly is adopted, there can be cases where the full advantage of the cache function cannot be taken as different data are cached in different NIPs. Consequently, in the case of using the re-direction, the NIP is selected by the static re-direction first, and the re-direction is carried out by determining an NIP with a lower load when the load of the selected NIP is high.
  • Here, the strategy for the static re-direction can be determined by using the hash function according to information such as URL (Uniform Resource Locator). For instance, a residue obtained by dividing a sum of character codes of the URL address by the number of NIPs can be used as the hash function. [0039]
  • As for the load of the NIP, an average time since each NIP accepts a request from the network until a response is made in form of a prescribed service is calculated, and using this as an average response time, a notice is given to the host machine at constant interval. The calculation of the average response time can be realized for example by averaging all the response times of the past up to the present since the time of activation, or averaging the last prescribed number of response times. The host machine maintains this average response time for each NIP in correspondence, and recognizes an NIP with the larger average response time as an NIP with the higher load. [0040]
  • FIG. 5 shows an exemplary configuration of software modules executed by the host CPU [0041] 2 in conjunction with the network controller 6, in relation to the re-direction function of the server device according to this embodiment.
  • As described above, the network controller for accepting the first access from the client can be either the network controller [0042] 6 inside the host machine or the network controller 23 inside the NIP. Consequently, either network controller operates similarly, and in the following, the re-direction in the exemplary case of accepting the first access at the network controller 6 inside the host machine will be described.
  • Note that each functional block in the configuration of FIG. 5 can be realized by hardware, software, or their combination. [0043]
  • In the software modules of FIG. 5, a request accepting unit [0044] 51 accepts a request from an external device through the network, and sends it to a hash value calculation unit 52. The hash value calculation unit 52 calculates a hash value according to a URL address contained in the received request. At this point, the number of NIPs connected to the server device is obtained from a registered NIP information memory unit 53. The hash value calculated by the hash value calculation unit 52 is sent to an NIP selection unit 54. The NIP selection unit 54 selects one NIP from those registered in the registered NIP information memory unit 53 according to that hash value, and sends an identification information (such as a hardware number) of the selected NIP to an NIP determination unit 55.
  • The NIP determination unit [0045] 55 judges a load on the selected NIP by referring to an average response time memory unit 56. Here, the NIP determination unit 55 judges that the selected NIP has a high load when the average response time for that NIP is greater than a prescribed threshold. When it is judged that the originally selected NIP has a high load, the NIP determination unit 55 newly selects one of NIPs with the load lower than a certain threshold according to the average response time memory unit 56, and obtains an IP address of the newly selected NIP from the registered NIP information memory unit 53. Here, the NIP determination unit 55 may newly select an NIP with the lowest load instead.
  • On the other hand, when it is judged that the originally selected NIP has a low load, the NIP determination unit [0046] 55 simply obtains an IP address of the originally selected NIP from the registered NIP information memory unit 53.
  • When the IP address of a re-direction target NIP is obtained in this manner, the NIP determination unit [0047] 55 sends it to an output unit 57. The output unit 57 notifies the re-direction target to the request source client.
  • In the above, the average response time can be generated as follows, for example. Namely, when the request accepting unit [0048] 51 accepts the request, this fact is notified to a timer unit 58. The timer unit 58 calls a timer function, for example, and measures an elapsed time (response time) until a response with respect to that request is outputted from the output unit 57. The measured response time is sent to the average response time calculation unit 59.
  • The average response time calculation unit [0049] 59 calculates a new average response time according to the measured response time and the average response time used up until now, and updates the stored content of the average response time memory unit 56 by the calculated new average response time.
  • FIG. 6 is a flow chart for the operation of the server device in this case, which proceeds as follows. [0050]
  • When the request from the network controller is accepted (step [0051] 61), an NIP for re-direction (re-direction target) is selected by the static strategy (allocation) (step 62). Then, whether a load (average response time) of the selected NIP is higher than a prescribed threshold or not is judged (step 63). When it is judged that the load is higher, one of NIPs with the load lower than a certain threshold is newly selected and a message containing the IP address of this NIP is returned to the client so as to carry out the re-direction with this newly selected NIP as the re-direction target (step 64). Here, the NIP with the lowest load may be newly selected instead.
  • On the other hand, when it is judged that the load is not higher, a message containing the IP address of the NIP selected at the step [0052] 62 is returned to the client so as to carry out the re-direction with this originally selected NIP as the re-direction target.
  • FIG. 7 is a flow chart for the operation of the NIP that became the re-direction target in this case, which proceeds as follows. [0053]
  • When the request from the client is received (step [0054] 71), whether data corresponding to the requested URL exists on the own cache memory (the local memory 22) or not is judged (step 72). When it is judged that the corresponding data does not exist, the transfer of that data is requested to the host machine (step 73), and the data returned from the host machine is outputted to the network from the own network controller 23 while registering it into the local memory 22 that functions as a cache memory (step 74). Here, the NIP may be controlled such that the registration of the data returned from the host machine into the local memory 22 is carried out when the size of the data returned from the host machine is smaller than a certain threshold. In other words, the data returned from the host machine may not necessarily be stored into the local memory 22 and whether or not to store the data returned from the host machine into the local memory 22 can be judged according some condition.
  • On the other hand, when it is judged that the corresponding data exists at the step [0055] 72, the transfer of that data is requested to the host machine by sending the “send-if-modified” command of HTTP to the host machine (step 75) and whether its contents coincide with the data contents registered in the host machine or not is judged (step 76). If the data contents do not coincide, the new data contents are returned from the host machine so that the data with new data contents is outputted to the network and cached in the local memory 22 (step 74), whereas if the data contents coincide, this fact is notified from the host machine so that the data as cached in the own local memory 22 is outputted to the network (step 77).
  • Note that the “send-if-modified” command is used in this embodiment, but this may be omitted in the case where an influence due to updating of data registered in the server device is small, and the data may be outputted from the cache memory inside the NIP whenever the data exists in the cache memory. In such a case, it is preferable to set up a valid period for each cached content and delete each cached content when its valid period is over so as not to keep it cached indefinitely. More specifically, the operation of FIG. 7 may be modified such that, after the step S[0056] 72 YES in FIG. 7, whether the valid period is over or not is checked, and if it is over, the operation proceeds to the step 74, whereas if it is not over, the operation proceeds to the step 77 by skipping the steps 75 and 76. In this case, the data will be outputted from the cache memory inside the NIP without inquiring the host, whenever the data exists in the cache memory and its content is fresh (a day has not elapsed since it is registered, for example).
  • Note also that the network controller is assumed to be connected to a wire network such as Ethernet in this embodiment, but the present invention is not necessarily limited to this and a radio network configuration may be used instead. [0057]
  • As described, according to the present invention, it is possible to expand the processing power of the host machine as the Web server with less hardware resources. Also, the load distribution among a plurality of ports can be realized efficiently. Due to these effects, it becomes possible to expand the processing power of the Web server relatively cheaply. [0058]
  • It is to be noted that the above described embodiment may be modified such that the re-direction using the hash function is used when the load is high whereas the hash function is not used when the load is low. [0059]
  • It is also to be noted that the above described embodiment according to the present invention may be conveniently implemented in forms of software programs for realizing the operations of the server device and the network interface processors, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. Moreover, such a software program can be provided in a form of a computer program product which employs a storage medium including stored computer code which is used to program a computer to perform the disclosed function and process of the present invention. The storage medium may include, but is not limited to, any type of conventional floppy disks, optical disks, CD-ROMs, magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or any other suitable media for storing electronic instructions. [0060]
  • It is also to be noted that, besides those already mentioned above, many modifications and variations of the above embodiments may be made without departing from the novel and advantageous features of the present invention. Accordingly, all such modifications and variations are intended to be included within the scope of the appended claims. [0061]

Claims (25)

    What is claimed is:
  1. 1. A server device, comprising:
    a main machine having a main processor for controlling the main machine, and a main memory for storing server data; and
    a plurality of network interface processor units connected to the main machine, each network interface processor unit having a local processor for controlling each network interface processor unit independently from the main machine, a local memory for storing a part of the server data, and a local network controller for communicating with an external device through a network, wherein the local processor controls the local memory and the local network controller such that a data requested by the external device is transmitted to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied, and requests transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied such that the requested data read out from the main memory is transmitted to the external device through the local network controller.
  2. 2. The server device of claim 1, wherein the main network machine includes:
    a main network controller for communicating with the external device through the network;
    selection means for selecting one network interface processor unit among said plurality of network interface processor units according to a prescribed rule upon accepting an initial request from the external device through the main network controller; and
    re-direction means for re-directing the external device to said one network interface processor unit selected by the selection means so that the external device makes a subsequent request to said one network interface processor unit.
  3. 3. The server device of claim 2, wherein the selection means first selects a first network interface processor unit according to the prescribed rule as said one network interface processor unit, and when a load on the first network interface processor unit is higher than a prescribed threshold, selects a second network interface processor unit with a load lower than another prescribed threshold among said plurality of network interface processor units as said one network interface processor unit.
  4. 4. The server device of claim 3, wherein the main network machine further includes:
    calculation means for calculating an average response time of each network interface processor unit and storing the calculated average response time in correspondence to each network interface processor unit as an information indicating the load on each network interface processor unit.
  5. 5. The server device of claim 2, wherein the selection means uses the prescribed rule based on a static strategy for selecting said one network interface processor unit regardless of a state of said one network interface processor unit.
  6. 6. The server device of claim 2, wherein the selection means uses the prescribed rule which determines said one network interface processor unit according to a hash function value based on an address contained in the request.
  7. 7. The server device of claim 1, wherein the local processor of each network interface processor unit enters the requested data read out from the main memory into the local memory when an entering condition is satisfied.
  8. 8. The server device of claim 1, wherein the local processor of each network interface processor unit judges whether the prescribed condition is satisfied or not independently.
  9. 9. The server device of claim 1, wherein the main processor updates the server data in the main memory when a data writing from the network to the main machine occurs, and notifies updating of the server data to each network interface processor unit.
  10. 10. The server device of claim 1, wherein each network interface processor unit is provided in a form of a network card to be detachably attached to the main machine.
  11. 11. A network interface processor device to be connected to a main machine of the server device having a main processor for controlling the main machine and a main memory for storing server data, the network interface processor device comprising:
    a local processor for controlling each network interface processor unit independently from the main machine;
    a local memory for storing a part of the server data; and
    a local network controller for communicating with an external device through a network;
    wherein the local processor controls the local memory and the local network controller such that a data requested by the external device is transmitted to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied, and requests transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied such that the requested data read out from the main memory is transmitted to the external device through the local network controller.
  12. 12. The network interface processor device of claim 1, wherein the local processor enters the requested data read out from the main memory into the local memory when an entering condition is satisfied.
  13. 13. The network interface processor device of claim 1, wherein the local processor judges whether the prescribed condition is satisfied or not independently.
  14. 14. The network interface processor device of claim 1, wherein the local processor, the local memory, and the local network controller are collectively provided in a form of a network card to be detachably attached to the main machine.
  15. 15. A communication method for a server device formed by a main machine having a main processor for controlling the main machine and a main memory for storing server data, and a plurality of network interface processor units connected to the main machine, each network interface processor unit having a local processor for controlling each network interface processor unit independently from the main machine, a local memory, and a local network controller for communicating through a network, the method comprising the steps of:
    setting up each network interface processor unit by storing a part of the server data in the local memory;
    transmitting a data requested by an external device to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied, at one of the network interface processor units; and
    requesting transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied, and transmitting the requested data read out from the main memory to the external device through the local network controller, at said one of the network interface processor units.
  16. 16. The method of claim 15, further comprising the steps of:
    selecting said one of the network interface processor units among said plurality of network interface processor units according to a prescribed rule at the main machine, upon accepting an initial request from the external device; and
    re-directing the external device to said one of the network interface processor units selected by the selecting step so that the external device makes a subsequent request to said one network interface processor unit.
  17. 17. The method of claim 16, wherein the selecting step first selects a first network interface processor unit according to the prescribed rule as said one of the network interface processor units, and when a load on the first network interface processor unit is higher than a prescribed threshold, selects a second network interface processor unit with a load lower than another prescribed threshold among said plurality of network interface processor units as said one of the network interface processor units.
  18. 18. The method of claim 17, further comprising the steps of:
    calculating an average response time of each network interface processor unit, in the main processor; and
    storing the average response time calculated by the calculating step in correspondence to each network interface processor unit as an information indicating the load on each network interface processor unit, in the main memory.
  19. 19. The method of claim 16, wherein the selecting step uses the prescribed rule based on a static strategy for selecting said one of the network interface processor units regardless of a state of each network interface processor unit.
  20. 20. The method of claim 16, wherein the selecting step uses the prescribed rule which determines said one of the network interface processor units according to a hash function value based on an address contained in the request.
  21. 21. The method of claim 15, further comprising the step of:
    entering the requested data read out from the main memory into the local memory when an entering condition is satisfied, at said one of the network interface processor units.
  22. 22. The method of claim 15, wherein at the transmitting step, the local processor of each network interface processor unit judges whether the prescribed condition is satisfied or not independently.
  23. 23. The method of claim 15, further comprising the step of:
    updating the server data in the main memory when a data writing from the network to the main machine occurs, and notifying updating of the server data to each network interface processor unit from the main processor.
  24. 24. An article of manufacture, comprising:
    a computer usable medium having computer readable program code means embodied therein for causing a computer to function as a network interface processor device to be connected to a main machine of the server device having a main processor for controlling the main machine and a main memory for storing server data, the network interface processor device having a local processor for controlling each network interface processor unit independently from the main machine, a local memory for storing a part of the server data, and a local network controller for communicating with an external device through a network, the computer readable program code means includes:
    first computer readable program code means for causing said computer to transmit a data requested by the external device to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied; and
    second computer readable program code means for causing said computer to request transfer of the requested data to the main machine when the requested data is not stored in the local memory or the prescribed condition is not satisfied, and transmit the requested data read out from the main memory to the external device through the local network controller.
  25. 25. An article of manufacture, comprising:
    a computer usable medium having computer readable program code means embodied therein for causing a computer to function as a main machine of the server device having a main processor for controlling the main machine, a main memory for storing server data, and a main network controller for communicating with an external device through a network, the main machine being connected with a plurality of network interface processor units, each network interface processor unit having a local processor for controlling each network interface processor unit independently from the main machine, a local memory for storing a part of the server data, and a local network controller for communicating with the external device through the network, the computer readable program code means includes:
    first computer readable program code means for causing said computer to select one network interface processor unit among said plurality of network interface processor units according to a prescribed rule upon accepting a request from the external device through the main network controller, such that the selected network interface processor unit transmits a data requested by the external device to the external device from the local memory through the local network controller when the requested data is stored in the local memory and a prescribed condition is satisfied; and
    second computer readable program code means for causing said computer to transfer the requested data from the main memory to the selected network interface processor unit when the requested data is not stored in the local memory or the prescribed condition is not satisfied.
US10438937 1997-08-19 2003-05-16 Server device and communication connection scheme using network interface processors Abandoned US20030208599A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JPP09-222105 1997-08-19
JP22210597A JPH1165969A (en) 1997-08-19 1997-08-19 Server equipment, communication connecting method and recording medium recording program for connecting communication
US09136513 US6611870B1 (en) 1997-08-19 1998-08-19 Server device and communication connection scheme using network interface processors
US10438937 US20030208599A1 (en) 1997-08-19 2003-05-16 Server device and communication connection scheme using network interface processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10438937 US20030208599A1 (en) 1997-08-19 2003-05-16 Server device and communication connection scheme using network interface processors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09136513 Continuation US6611870B1 (en) 1997-08-19 1998-08-19 Server device and communication connection scheme using network interface processors

Publications (1)

Publication Number Publication Date
US20030208599A1 true true US20030208599A1 (en) 2003-11-06

Family

ID=16777229

Family Applications (2)

Application Number Title Priority Date Filing Date
US09136513 Expired - Fee Related US6611870B1 (en) 1997-08-19 1998-08-19 Server device and communication connection scheme using network interface processors
US10438937 Abandoned US20030208599A1 (en) 1997-08-19 2003-05-16 Server device and communication connection scheme using network interface processors

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09136513 Expired - Fee Related US6611870B1 (en) 1997-08-19 1998-08-19 Server device and communication connection scheme using network interface processors

Country Status (2)

Country Link
US (2) US6611870B1 (en)
JP (1) JPH1165969A (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061356A1 (en) * 2001-09-24 2003-03-27 Jason James L. Load balancing in a data delivery system
US20040213283A1 (en) * 1999-08-09 2004-10-28 Mitsubishi Material Corporation Information transmitting apparatus, information saving apparatus, information receiving apparatus, method for using the same, and recording medium thereof
US20050198400A1 (en) * 2003-12-30 2005-09-08 Intel Corporation, A Delaware Corporation Systems and methods using nic-based prefetching for host TCP context lookup
US20050198311A1 (en) * 1999-09-24 2005-09-08 Smith Jack J. System and method for managing connections between a client and a server
US20050262244A1 (en) * 2004-05-21 2005-11-24 International Business Machines Corporation Indicating network resource availability methods, system and program product
US20060077724A1 (en) * 2004-10-12 2006-04-13 Takashi Chikusa Disk array system
US20060117124A1 (en) * 2004-11-30 2006-06-01 Grasso Lawrence J Multiple host support for remote expansion apparatus
US20070180087A1 (en) * 2005-12-12 2007-08-02 Hitachi, Ltd. Computer allocation method
US7344410B1 (en) 2006-12-19 2008-03-18 International Business Machines Corporation Blade server expansion
US20080127159A1 (en) * 2006-10-02 2008-05-29 Mark Van Regenmorter Multi-function peripheral device capable of independent firmware updating
US20110022810A1 (en) * 2009-07-21 2011-01-27 Fujitsu Limited Data storing method and data storing system
US8069251B2 (en) 2007-06-01 2011-11-29 Adobe Systems Incorporated System and/or method for client-driven server load distribution
US20120020353A1 (en) * 2007-10-17 2012-01-26 Twitchell Robert W Transmitting packet from device after timeout in network communications utilizing virtual network connection

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952770B1 (en) * 2000-03-14 2005-10-04 Intel Corporation Method and apparatus for hardware platform identification with privacy protection
US7013394B1 (en) * 2000-04-18 2006-03-14 International Business Machines Corporation Data flow pattern recognition and manipulation
DE60110744D1 (en) * 2001-03-23 2005-06-16 Sun Microsystems Inc Client query redirection
US7191274B1 (en) * 2001-08-20 2007-03-13 Crystal Group Inc. Method and system for providing independent server functionality in a single personal computer
US7321769B2 (en) * 2002-04-12 2008-01-22 Intel Corporation Method and apparatus for managing personal cache in a wireless network
KR100449806B1 (en) * 2002-12-23 2004-09-22 한국전자통신연구원 A network-storage apparatus for high-speed streaming data transmission through network
US20050114658A1 (en) * 2003-11-20 2005-05-26 Dye Matthew J. Remote web site security system
US20060072563A1 (en) * 2004-10-05 2006-04-06 Regnier Greg J Packet processing
US7539916B2 (en) 2005-06-28 2009-05-26 Intel Corporation BIST to provide phase interpolator data and associated methods of operation
US7516380B2 (en) * 2005-06-28 2009-04-07 Intel Corporation BIST to provide jitter data and associated methods of operation
US8099343B1 (en) * 2006-04-20 2012-01-17 At&T Intellectual Property I, L.P. Distribution schemes and related payment models for subscriber-created content
JP5692860B2 (en) * 2011-12-01 2015-04-01 株式会社日立製作所 Transmission device and interface device

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5579503A (en) * 1993-11-16 1996-11-26 Mitsubishi Electric Information Technology Direct cache coupled network interface for low latency
US5603051A (en) * 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
US5740448A (en) * 1995-07-07 1998-04-14 Sun Microsystems, Inc. Method and apparatus for exclusive access to shared data structures through index referenced buffers
US5740370A (en) * 1996-03-27 1998-04-14 Clinton Battersby System for opening cache file associated with designated file of file server only if the file is not subject to being modified by different program
US5864679A (en) * 1993-09-06 1999-01-26 Kabushiki Kaisha Toshiba Transaction routing in a multiple processor system using an extracted transaction feature parameter and transaction historical data
US5915097A (en) * 1996-08-14 1999-06-22 Winbond Electronics Corporation Method and apparatus for data storage and search in an address table of an ethernet switch
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5918021A (en) * 1996-06-03 1999-06-29 Intel Corporation System and method for dynamic distribution of data packets through multiple channels
US5951649A (en) * 1994-03-22 1999-09-14 Cabletron Systems, Inc. Network interconnecting apparatus having a separate forwarding engine object at each interface
US5983281A (en) * 1997-04-24 1999-11-09 International Business Machines Corporation Load balancing in a multiple network environment
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device
US6067569A (en) * 1997-07-10 2000-05-23 Microsoft Corporation Fast-forwarding and filtering of network packets in a computer system
US6085238A (en) * 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US6163772A (en) * 1996-06-17 2000-12-19 Hewlett-Packard Company Virtual point of sale processing using gateway-initiated messages
US6253027B1 (en) * 1996-06-17 2001-06-26 Hewlett-Packard Company System, method and article of manufacture for exchanging software and configuration data over a multichannel, extensible, flexible architecture

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system
US5864679A (en) * 1993-09-06 1999-01-26 Kabushiki Kaisha Toshiba Transaction routing in a multiple processor system using an extracted transaction feature parameter and transaction historical data
US5579503A (en) * 1993-11-16 1996-11-26 Mitsubishi Electric Information Technology Direct cache coupled network interface for low latency
US5951649A (en) * 1994-03-22 1999-09-14 Cabletron Systems, Inc. Network interconnecting apparatus having a separate forwarding engine object at each interface
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5603051A (en) * 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
US5740448A (en) * 1995-07-07 1998-04-14 Sun Microsystems, Inc. Method and apparatus for exclusive access to shared data structures through index referenced buffers
US5740370A (en) * 1996-03-27 1998-04-14 Clinton Battersby System for opening cache file associated with designated file of file server only if the file is not subject to being modified by different program
US6085238A (en) * 1996-04-23 2000-07-04 Matsushita Electric Works, Ltd. Virtual LAN system
US5918021A (en) * 1996-06-03 1999-06-29 Intel Corporation System and method for dynamic distribution of data packets through multiple channels
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US6035362A (en) * 1996-06-05 2000-03-07 Goodrum; Alan L. Storing data associated with one request while continuing to store data associated with a previous request from the same device
US6163772A (en) * 1996-06-17 2000-12-19 Hewlett-Packard Company Virtual point of sale processing using gateway-initiated messages
US6253027B1 (en) * 1996-06-17 2001-06-26 Hewlett-Packard Company System, method and article of manufacture for exchanging software and configuration data over a multichannel, extensible, flexible architecture
US5915097A (en) * 1996-08-14 1999-06-22 Winbond Electronics Corporation Method and apparatus for data storage and search in an address table of an ethernet switch
US5983281A (en) * 1997-04-24 1999-11-09 International Business Machines Corporation Load balancing in a multiple network environment
US6067569A (en) * 1997-07-10 2000-05-23 Microsoft Corporation Fast-forwarding and filtering of network packets in a computer system

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040213283A1 (en) * 1999-08-09 2004-10-28 Mitsubishi Material Corporation Information transmitting apparatus, information saving apparatus, information receiving apparatus, method for using the same, and recording medium thereof
US20050198311A1 (en) * 1999-09-24 2005-09-08 Smith Jack J. System and method for managing connections between a client and a server
US9009326B2 (en) 1999-09-24 2015-04-14 Akamba Corporation System and method for managing connections between a client and a server
US20030061356A1 (en) * 2001-09-24 2003-03-27 Jason James L. Load balancing in a data delivery system
US7039916B2 (en) * 2001-09-24 2006-05-02 Intel Corporation Data delivery system for adjusting assignment of connection requests to nodes based upon the tracked duration
US20050198400A1 (en) * 2003-12-30 2005-09-08 Intel Corporation, A Delaware Corporation Systems and methods using nic-based prefetching for host TCP context lookup
US7720930B2 (en) * 2003-12-30 2010-05-18 Intel Corporation Systems and methods using NIC-based prefetching for host TCP context lookup
US20050262244A1 (en) * 2004-05-21 2005-11-24 International Business Machines Corporation Indicating network resource availability methods, system and program product
US7660888B2 (en) * 2004-05-21 2010-02-09 International Business Machines Corporation Indicating network resource availability methods, system and program product
US20060077724A1 (en) * 2004-10-12 2006-04-13 Takashi Chikusa Disk array system
US20060117124A1 (en) * 2004-11-30 2006-06-01 Grasso Lawrence J Multiple host support for remote expansion apparatus
US8984202B2 (en) 2004-11-30 2015-03-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multiple host support for remote expansion apparatus
US8484398B2 (en) 2004-11-30 2013-07-09 International Business Machines Corporation Multiple host support for remote expansion apparatus
US20070283070A1 (en) * 2004-11-30 2007-12-06 Grasso Lawrence J Multiple Host Support For Remote Expansion Apparatus
US20070180087A1 (en) * 2005-12-12 2007-08-02 Hitachi, Ltd. Computer allocation method
US20080127159A1 (en) * 2006-10-02 2008-05-29 Mark Van Regenmorter Multi-function peripheral device capable of independent firmware updating
US7344410B1 (en) 2006-12-19 2008-03-18 International Business Machines Corporation Blade server expansion
US8069251B2 (en) 2007-06-01 2011-11-29 Adobe Systems Incorporated System and/or method for client-driven server load distribution
US9300733B2 (en) 2007-06-01 2016-03-29 Adobe Systems Incorporated System and/or method for client-driven server load distribution
US20120020353A1 (en) * 2007-10-17 2012-01-26 Twitchell Robert W Transmitting packet from device after timeout in network communications utilizing virtual network connection
US9634931B2 (en) * 2007-10-17 2017-04-25 Dispersive Networks, Inc. Providing network communications using virtualization based on protocol information in packet
US9350794B2 (en) * 2007-10-17 2016-05-24 Dispersive Networks, Inc. Transmitting packet from device after timeout in network communications utilizing virtual network connection
US20160294687A1 (en) * 2007-10-17 2016-10-06 Dispersive Networks, Inc. Transmitting packet from device after timeout in network communications utilizing virtual network connection
US20110022810A1 (en) * 2009-07-21 2011-01-27 Fujitsu Limited Data storing method and data storing system
US8650370B2 (en) * 2009-07-21 2014-02-11 Fujitsu Limited Data storing method and data storing system

Also Published As

Publication number Publication date Type
JPH1165969A (en) 1999-03-09 application
US6611870B1 (en) 2003-08-26 grant

Similar Documents

Publication Publication Date Title
Schmidt et al. An overview of the real-time CORBA specification
US6742025B2 (en) System and method for server managed modification of operating system data stored within a network device
US7089558B2 (en) Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment
US5805827A (en) Distributed signal processing for data channels maintaining channel bandwidth
US7225264B2 (en) Systems and methods for delivering content over a computer network
US8606996B2 (en) Cache optimization
US4768150A (en) Application program interface to networking functions
US8447831B1 (en) Incentive driven content delivery
US6820122B1 (en) Maintenance of free resource information in a distributed system
US6182111B1 (en) Method and system for managing distributed data
US5632016A (en) System for reformatting a response packet with speed code from a source packet using DMA engine to retrieve count field and address from source packet
US6985951B2 (en) Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment
US6665704B1 (en) Bounding delays and reducing threading overheads in caching
US7028091B1 (en) Web server in-kernel interface to data transport system and cache manager
US5748892A (en) Method and apparatus for client managed flow control on a limited memory computer system
US5832191A (en) Method and apparatus for automatically enabling communication with a network printer
US6763382B1 (en) Method and apparatus for demand based paging algorithm
US6801927B1 (en) Network adaptor card with reverse proxy and cache and method implemented therewith
US6477522B1 (en) Dynamic performance based server selection
US20070180280A1 (en) Controlling the allocation of power to a plurality of computers whose supply of power is managed by a common power manager
US6678726B1 (en) Method and apparatus for automatically determining topology information for a computer within a message queuing network
EP1039721A2 (en) Information delivery to mobile computers using cache servers
US5961606A (en) System and method for remote buffer allocation in exported memory segments and message passing between network nodes
US7085805B1 (en) Remote device management in grouped server environment
US20060123142A1 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment