All of the material in this patent application is subject to copyright protection under the copyright laws of the United States and of other countries. As of the first effective filing date of the present application, this material is protected as unpublished material. However, permission to copy this material is hereby granted to the extent that the copyright owner has no objection to the facsimile reproduction by anyone of the patent documentation or patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Not Applicable
1. Field of the Invention
This invention generally relates to the field of computer networks comprising a plurality of computers and more particularly to computer networks that communicate information using a token-based protocol while connected on a ring or bus.
2. Description of the Related Art
Computer networks allow for the connected devices to communicate with each other. There are three basic types of networks that are defined based on the proximity of the computer to a peripheral device. The smallest is a PAN (Personal Area Network) An example of a PAN is a home computer using the USB (Universal Serial Bus) method for connecting a computer, printer, scanner, and more. This PAN is used to communicate with each other as long as they are in close proximity.
Communication is based on a serial bus and has several limitations one of which being the inability to do simultaneous communications. Accordingly there exist a need for communications, which allow improved simultaneous networks.
In a typical business environment many offices are connected together so that the computers, printers, and associated equipment can communicate together. This configuration is known as a LAN (Local Area Network). There are two widely deployed types of LANs. One type of LAN is Ethernet Net (IEEE 802.3) and the other type of LAN is Token Ring (IEEE 802.5) networks. The Ethernet network is more widely deployed, because it is typically less expensive to deploy. However, if several communication devices contend for communication at the same time, bottlenecks occur during which all devices except one device must “Backoff” or hold-off communicating until the one device completes the communication. Then another device starts communicating until all devices are complete. This is a problem with “simultaneous” communications. In an Ethernet network topology, the aggregated bandwidth of the network cannot approach the incremental bandwidth due to the lack of controlled loading.
In contrast, to an Ethernet network topology, a Token Ring does allow for controlled loading. As the name implies, a Token Ring network is based on token passing, for higher shared bandwidth, and avoids collisions based on the control of the tokens.
These LAN standards of Ethernet network and Token Ring network although both useful are not without their shortcoming. One shortcoming is that both Ethernet and Token Ring networks do not allow for simultaneous communications. Accordingly there exists a need to provide simultaneous communications and to improve communication bandwidth.
As stated above, the cost of network deployment is often a major factor in adoption of a network topology. Other solutions in the prior art for simultaneous communications that require significant additional costs are not desirable because of the high cost of adoption. Accordingly, there is a need for a method and apparatus to provided simultaneous communications at a reasonable cost.
A WAN (Wide Area Network), as the name implies, widely separates computers and computer equipment. There are several methods of connecting these computers. The Internet is by far the most popular. Network contention with other computers while using a WAN is controlled by having simultaneous connections of varying connections speed and feed rates. Stated differently a computer typically communicates using a WAN simultaneously with other computers, however the communications can take a long time due to the extended distance between communicating units. Accordingly there exist a need for a method and apparatus that permits simultaneous communications while being part of a LAN.
Briefly, according to the present invention, disclosed is a method, an apparatus and computer readable medium for simultaneous communication over a bus in a master/slave agent network topology. Each communication agent on the network is either a master agent or slave agent with an input and an output. In one embodiment, the input and the output are latched. The method permits more than one token to be on the ring at any given time. A master agent can start a request a slave agent cannot start a request. When a master agent receives a token from the ring and it has a pending request, the master agent removes the token from the ring and issues its request. The token is not put back onto the ring until the master agent receives the response to the request from the designated slave agent. That is, the token time slot is used for a complete, round trip transaction, rather than simply the sending of a request or response. When the slave agent receives a request, it generates the response and puts it on the ring as soon as it is possible, without waiting for a token. The present invention, using the technology described herein, supports multiple master agents coupled to the same bus.
The subject matter, which is regarded as the invention, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
It is important to note, that these embodiments are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in the plural and visa versa with no loss of generality.
In the drawing, like numerals refer to like parts through several views.
GLOSSARY OF TERMS USED IN THIS DISCLOSURE
OVERVIEW OF PROTOCOL
A typical Token Ring network with Master/Slave Agent communicating devices, a Master Agent can issue a new request only when it has the token, as with the normal Token Ring protocol. However, there are several departures from the normal token protocols.
Turning now to
If the agent has information to be put on to the ring 218, the information is presented to the L1 latch 204 by the L4 latch 206 using the connection 230. This information in turn is presented onto the bus 110 at port 114. If this is the completion of a send/receive round trip, the Master Agent (102 and 106) presents it's token back (not shown) out on to the bus 110, using the same path 230. This described the transmitting of control and data onto the bus 110 at port 114 from an agent.
If the data that was received by the L2 latch 202, is not for this agent it is presented to the L1 latch 204 using connection 226. The L1 latch 204 will pass information that is not identified for this agent. This is accomplished by presenting this information on to the bus 110 via path 214 at port 114 after the downstream agent's L2 (not shown) presents a CTS signal 216 to the L1 latch 204.
If a sending Master Agent received a request back from the bus 110 with out being processed by another agent, the sending Master Agent may retry, or do a timeout and try again later.
DATA FLOW AROUND THE RING
Turning now to
A labeling convention for each alphanumeric from the left-to-right, where # denotes a place holder for
The cable nomenclature has six place holder as follows, i.e., ###–##. The first the number is the figure number. The next number are labels of the connected agents where “M” is for Master Agent and “S” is for Slave Agent, ###–##, and the “–” denotes from-to, e.g. 4M2–S2 is a cable from
TIME T0
Referring to
Master Agent 1's L13M1 L1, L33M1L3 and L43M1L4 are all blank. L23M1L2 has a-token, labeled T1.
Slave Agent 1's L13S1L1, L33S1L3 and L43S1L4 are all blank. L23S1L2 has a token, labeled T2.
Master Agent 2's L13M2L1, L33M2L3 and L43M2L4 are all blank. L23M2L2 has a token, labeled T3.
Slave Agent 2's L13S2L1, L33S2L3 and L43S2L4 are all blank. L23S2L2 is also blank. There must be one fewer tokens than ring agents circulating on the bus 110.
TIME T1
Turning now to
Master Agent 1 pulls in the T1 token and placed the READ S2 request on the bus 110 Therefore:
Slave Agent 1 has received the T2 token but cannot initiate any requests, therefore:
Master Agent 2 has pulled in the T3 token and placed the request WRITE S1 on the bus 110. Therefore:
Slave Agent 2 has not received any tokens and therefore:
This completes the description of T-1.
TIME T2
Referring to
Master Agent 1 has received blank information from the Slave Agent 2 agent. Therefore:
Slave Agent 1 has received the information from the Master Agent 1 agent, and is ready for the next communication cycle. This command is not for this Slave Agent. Therefore:
Master Agent 2 has received the information from the Slave Agent 1 agent. The information is the T2 token. Therefore:
Slave Agent 2 has just received the information from the Master Agent 2 agent. Therefore:
Referring to
Master Agent 1 has received the Master Agent 2 command to write S1. This command is not for this Master Agent. Therefore:
Slave Agent 1 has received blank information. Therefore:
Master Agent 2 has received the M1: read S2 command. This command is not for this Master Agent. Therefore:
Slave Agent 2 has received the T2 token. Therefore:
This completes the description of T-3.
TIME T4
Referring to
Master Agent 1 has received the T2. Therefore:
Slave Agent 1 has received the command M2: Write S1. This command is for this Slave Agent, the Write command from Master 2 will be performed. Therefore:
The results of the command will be put into the L4 register.
Master Agent 2 has received blanks from the Slave Agent 1 bus 110 agent. Therefore:
Slave Agent 2 has the command M1: Read S2 in its register. As this command is for this Slave Agent the Read command from Master Agent 1 will be performed. Therefore:
Referring to
Master Agent 1 has received blanks from the Slave Agent 1 bus 110 Therefore:
Slave Agent 1 has received the T2 token and placed the response M2: Write Verify S1 on the bus 110. Therefore:
Master Agent 2 has received blanks from the Slave Agent 1 bus 110 Therefore:
Slave Agent 2 did not receive any tokens but placed the response M1: Data from S2 on the bus 110. Therefore:
This completes the description of T-5
TIME T6
Referring to
Master Agent 1 has received the results of its pending command. At this time the request by the Master Agent 1 bus 110 agent has been completed. It will put the T1 token on the bus 110. Therefore:
Slave Agent 1 has received the T2 token. Therefore:
Master Agent 2 has received the results of its pending command. At this time the request by the Master Agent 2 agent has been completed. It will put the token on the bus 110. Therefore:
Slave Agent 2 did not receive any tokens. Therefore:
This completes the description of T-6, and of the subject invention's Token Ring simultaneous information transfer example.
SUMMARY OF THE RING RULES FOR EACH AGENT
In summary the following is a description of the rules and behaviors of each component on the ring with reference to the interface 200 of
Below the summing node 1002 is a decision block, step 1004. If there is no data in the L1 and the next bus 110 agent does not send an advance line (A) then the ring 110 is indexed by returning to summing node 1002. If there is no data in the L1 or the next bus agent sends an advance line then the process continues at step 1006 below.
In step 1006, a determination is made as to if there is valid data from the bus 110 or this Master unit (102 and 106). If it is NOT from the bus 110 or the Master, then the ring 110 is indexed by returning to summing node 1002. If there is valid data from the ring 110 or from this Master then the process continues at step 1008.
In step 1008, a determination is made as to if the data is from the bus 110 and NOT from the Master. If the data 120 is from the bus 110 and NOT from the Master, in step 1008, then the process continues at step 1009. If the data 120 is NOT from the bus 110 or is from the Master, the process continues at step 1010.
In step 1009, a determination is made as to if the bus 110 data is for the Master Agent. If the bus 110 data is for the Master Agent, then the bus 10 data is passed to the Master, in step 1017, and the ring is indexed by returning to the summing node 1002. If the bus 110 data is NOT for the Master Agent, then the bus 110 data is passed to the L1, in step 1016, and the ring 110 is indexed by returning to the summing node 1002.
In step 1010, a determination is made as to if the data is from the Master and NOT the bus 110. If the data is from the Master and NOT the bus 110 then the ring 110 is indexed by returning to summing node 1002. Otherwise the data is NOT from the Master or it is from the bus 110 then the process continues at step 1012.
In step 1012 if the data from the bus 110 equals the token, then in step 1014 the Master request is placed into the L1, and the Token is decimated by being discarded in a bit bucket and ring 110 is indexed by returning to summing node 1002. Otherwise, if the data from the bus 110 does NOT equal the token, in step 1018, the bus 110 is passed to the L1 and the ring 110 is indexed by returning to summing node 1002.
FLOW DIAGRAM FOR SLAVE AGENT
Turning now to
Below the summing node 1102 step is the first decision block NOT L1 or Advance in step 1104. If neither is valid the ring 110 is indexed by returning to summing node 1102. If either is valid, the process continues in step 1106.
In step 1106, a decision is made as to if the information is for the Slave Agent or to be passed on to the ring 110. If the data is NOT for the ring 110 or for the Slave Agent, then the ring 110 is indexed by returning to summing node 1102. If the information is either for the Ring or for the Slave Agent then the process continues in step 1107.
In step 1107, a decision is made as to if the information is for the Slave Agent. If the data is for the Slave Agent the ring 110 transfers the information into the Slave at step 1105 and the process continues at step 1102.
If the Ring information is not for the Slave Agent, in step 1108 the Ring information is eXclusively OR'ed (i.e., XOR) with the Slave tag. If the information is either for the ring OR information is being presented from the Slave then in step 1110 the data is transferred to the L1 or the Slave response is transferred to the L1 and the ring is indexed by returning to summing node 1102. Otherwise, if the information is both from the ring AND it is for the Slave Agent then the process continues at step 1112.
In step 1112, priority (P) is compared to the ring information. If the priority matches then in step 1114 the Ring information is put into the L1 and the Slave information is processed after the ring is indexed by returning to summing node 1102. Otherwise, if the priority does NOT equal the Ring information in step 1112, the Slave information is put into the L1 and the Ring information will be processed after the ring is indexed 1114. It should be understood that steps 1112 through 1116 allow the priority on the Slave Agents 104 and 109 to be set in a round-robin method, where the priority is switched between the ring 110 and the Slave during each cycle.
DISCUSSION OF HARDWARE AND SOFTWARE IMPLEMENTATION OPTIONS
The present invention, as would be known to one of ordinary skill in the art could be produced in hardware or software, or in a combination of hardware and software. The system, or method, according to the inventive principles as disclosed in connection with the preferred embodiment, may be produced in a single computer system having separate elements or means for performing the individual functions or steps described or claimed or one or more elements or means combining the performance of any of the functions or steps disclosed or claimed, or may be arranged in a distributed computer system, interconnected by any suitable means as would be known by one of ordinary skill in art.
According to the inventive principles as disclosed in connection with the preferred embodiment, the invention and the inventive principles are NOT limited to any particular kind of computer system but may be used with any general purpose computer, as would be known to one of ordinary skill in the art, arranged to perform the functions described and the method steps described. The operations of such a computer, as described above, may be according to a computer program contained on a medium for use in the operation or control of the computer, as would be known to one of ordinary skill in the art. The computer medium, which may be used to hold or contain the computer program product, may be a fixture of the computer such as an embedded memory or may be on a transportable medium such as a disk, as would be known to one of ordinary skill in the art.
The invention is not limited to any particular computer program or logic or language, or instruction but may be practiced with any such suitable program, logic or language, or instructions as would be known to one of ordinary skill in the art. Without limiting the principles of the disclosed invention any such computing system can include, inter alia, at least a computer readable medium allowing a computer to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium. The computer readable medium may include non-volatile memory, such as ROM, Flash memory, floppy disk, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits.
Furthermore, the computer readable medium may include computer readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a computer to read such computer readable information.
NON-LIMITING EXAMPLES
Although a specific embodiment of the invention has been disclosed. It will be understood by those having skill in the art that changes can be made to this specific embodiment without departing from the spirit and scope of the invention. The scope of the invention is not to be restricted, therefore, to the specific embodiment, and it is intended that the appended claims cover any and all such applications, modifications, and embodiments within the scope of the present invention.
Number | Name | Date | Kind |
---|---|---|---|
4602365 | White et al. | Jul 1986 | A |
4680757 | Murakami et al. | Jul 1987 | A |
5228027 | Yamaguchi | Jul 1993 | A |
5235593 | Grow et al. | Aug 1993 | A |
5305306 | Spinney et al. | Apr 1994 | A |
5444847 | Iitsuka | Aug 1995 | A |
5457683 | Robins | Oct 1995 | A |
5481538 | Yang et al. | Jan 1996 | A |
5548731 | Chang et al. | Aug 1996 | A |
5634138 | Ananthan et al. | May 1997 | A |
5654969 | Wilhelmsson | Aug 1997 | A |
5657315 | Waclawsky et al. | Aug 1997 | A |
5666497 | Milhaupt et al. | Sep 1997 | A |
5689678 | Stallmo et al. | Nov 1997 | A |
5712983 | Vergnaud et al. | Jan 1998 | A |
5764634 | Christensen et al. | Jun 1998 | A |
5764896 | Johnson | Jun 1998 | A |
5805914 | Wise et al. | Sep 1998 | A |
5909559 | So | Jun 1999 | A |
5948089 | Wingard et al. | Sep 1999 | A |
5970510 | Sher et al. | Oct 1999 | A |
6005869 | Sakai et al. | Dec 1999 | A |
6185644 | Farmwald et al. | Feb 2001 | B1 |
6260088 | Gove et al. | Jul 2001 | B1 |
6275864 | Mancusi et al. | Aug 2001 | B1 |
6310885 | Mizuguchi et al. | Oct 2001 | B1 |
Number | Date | Country | |
---|---|---|---|
20030140109 A1 | Jul 2003 | US |