WO2003063424A2 - Method and system for simultaneous management of multiple tokens on a communication ring - Google Patents

Method and system for simultaneous management of multiple tokens on a communication ring Download PDF

Info

Publication number
WO2003063424A2
WO2003063424A2 PCT/GB2003/000127 GB0300127W WO03063424A2 WO 2003063424 A2 WO2003063424 A2 WO 2003063424A2 GB 0300127 W GB0300127 W GB 0300127W WO 03063424 A2 WO03063424 A2 WO 03063424A2
Authority
WO
WIPO (PCT)
Prior art keywords
bus
data
agent
slave
master
Prior art date
Application number
PCT/GB2003/000127
Other languages
French (fr)
Other versions
WO2003063424A3 (en
Inventor
Kirk Pospesel
Thomas Dubois
Dean Liberty
Original Assignee
International Business Machines Corporation
Ibm United Kingdom Limited
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
Application filed by International Business Machines Corporation, Ibm United Kingdom Limited filed Critical International Business Machines Corporation
Priority to KR1020047001459A priority Critical patent/KR100628630B1/en
Priority to JP2003563158A priority patent/JP3995249B2/en
Publication of WO2003063424A2 publication Critical patent/WO2003063424A2/en
Publication of WO2003063424A3 publication Critical patent/WO2003063424A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Definitions

  • This invention generally relates to the field of computer networks .
  • Computer networks allow for the connected devices to communicate with each other.
  • 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.
  • PAN Personal Area Network
  • USB Universal Serial Bus
  • Communication is based on a serial bus and has several limitations one of which being the inability to do simultaneous communications.
  • LAN Local Area Network
  • Ethernet Net IEEE 802.3
  • Token Ring IEEE 802.5
  • the Ethernet network is more widely deployed, because it is typically less expensive to deploy.
  • 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.
  • the aggregated bandwidth of the network cannot approach the incremental bandwidth due to the lack of controlled loading.
  • a Token Ring does allow for controlled loading.
  • 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.
  • a WAN Wide Area Network
  • 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.
  • 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.
  • 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.
  • 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.
  • the token time slot is used for a complete, round trip transaction, rather than simply the sending of a request or response.
  • 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.
  • a method for simultaneous communication over a bus coupling at least one master agent with at least one slave agent comprising the steps of : determining if there is data from the master or data from the bus, and if there is data from the master then performing the sub-steps of: testing if the data from the bus is a token; if the data from the bus is a token, then moving the data from the master to the bus and discarding the token from the bus; and if the data is not a token from the bus, then moving the data from the input of the bus to the output of the bus; wherein if the data is from the bus, then moving the data from the input of the bus to the output of the bus .
  • the method further comprises the step of: determining if the master agent is coupled to an access macro and if the master agent is coupled to an access macro, then when the bus is initialized performing the step of placing tokens on the bus, where the maximum number of tokens on the bus is set equal to a total number of master agents plus the total number of slave agents less one.
  • the method further comprises the steps of receiving a reset command; determining after being reset if the master agent is coupled to an access macro and if the master agent is coupled to the access macro then placing n-1 tokens on the bus, where n is the total number of master agents and slave agents communicating on the bus .
  • a computer program comprising program code means adapted to perform all the steps of the above method when said program is run on a computer.
  • a method for simultaneous communication over a bus which couples at least one master agent with at least one slave agent comprising the steps of : determining if there is data from the bus or from the slave and if there is data from the bus but not from the slave then moving the data from the bus to the output and if there is data from the slave but not the bus then moving the data from the slave to the output; determining if there is data both from the bus and the slave and if there is data from both the bus and the slave then performing the sub-steps of: if the bus has priority then moving the data from the bus to the output and setting the priority to the slave; and if the bus does not have priority then moving the data from the slave to the output and setting the priority to the bus.
  • the method further comprises the step of: determining if there is no data on output or if an advance line is asserted and if there is no data on output or an advance line is asserted then performing the step of determining if there is data from the bus or if there is data from the slave.
  • a computer program comprising program code means adapted to perform all the steps of the above method when said program is run on a computer.
  • the present invention provides a data communications network for simultaneous communications between two or more agents comprising: at least one agent designated as a slave agent coupled to a communications bus; at least one agent designated as a master agent coupled to the communications bus; an interface to the master agent with an input from the bus and an output to the bus, the interface comprising a plurality of latches for testing if there is data, and if there is data from the master then testing if the data from the bus is a token; if the data from the bus is a token, then moving the data from the master to the bus and discarding the token; and if the data is not a token from the bus, then moving the data from the input of the bus to the output of the bus; wherein if the data is not from the master and the data is from the bus, then moving the data from the input of the bus to the output of the bus .
  • the present invention provides a data communications network for simultaneous communications between two or more agents comprising: at least one agent designated as a slave agent coupled to a communications bus; at least one agent designated as a master agent coupled to the communications bus; an interface on each slave agent with an input to the bus and an output to the bus, the interface comprising a plurality of latches for testing if there is data from the bus or from the slave agent and if there is data from the bus but not from the slave then moving the data from the bus to the output and if there is data from the slave but not from the bus then moving the data from the slave to the output; wherein the plurality of latches tests if there is data both from the bus and data from the slave and if there is data from both the bus and from the slave then testing if the bus has priority and: if the bus has priority then moving the data from the bus to the output and setting the priority to the slave; and if the bus does not have priority then moving the data from the slave to the output and setting the priority to the bus.
  • the data further includes control, data and parity data.
  • at least one of the communication agents is coupled to a first brand of computer and at least one of the communications agents is coupled to a second brand of computer so as to form a heterogeneous environment.
  • the bus is selected from a group of buses consisting of wire, wireless and infrared.
  • an interface on each slave agent comprises a plurality of latches for testing if the data is for the slave agent and if the data is for the slave agent then transferring the data to the slave.
  • the interface to the master agent further comprises a plurality of latches for testing if the data is for the master agent and if the data is for the master agent, then passing the data to the master.
  • a data communications network for simultaneous communications between two or more agents comprising: at least one agent designated as a master agent coupled to the communications bus as described above; and at least one agent designated as a slave agent coupled to the communications bus as described above .
  • a computer readable medium containing programming instructions for simultaneous communication over a bus coupling at least one master agent with at least one slave agent, the method on a master agent having an input and an output to the bus, the programming instructions comprising: receiving a reset command; determining after being reset if the master agent is coupled to an access macro and if the master agent is coupled to the access macro then placing n-1 tokens on the bus, where n is the total number of master agent agents and slave agents communication on the bus .
  • a computer readable medium containing programming instructions for simultaneous communication over a bus coupling at least one master agent with at least one slave agent, the method on a master agent having an input and an output to the bus, the programming instructions comprising: determining if there is data from the master, and if there is data from the master then performing the programming instructions of: testing if the data from the input is a token; if the data from the bus is a token, then moving the data from the master to the bus and discarding the token; and if the data from the bus is not a token, then moving the data from the input of the bus to the output of the bus; wherein if the data is not from the master and the data is from the bus, then moving the data from the input of the bus to the output of the bus .
  • FIG. IA is a block diagram of a typical Token Ring network illustrating two Master Agents and two Slave Agents;
  • FIG. IB is a block diagram of a packet, illustrated as an example of how data and control is defined
  • FIG. 2 is a logic block diagram, illustrating an embodiment of an interface between the bus and an agent, which may be a Master Agent or Slave Agent;
  • FIGs. 3 through 9, are a series of logical diagrams illustrating simultaneous communication for an exemplary time period TO - T6 for a ring network topology of FIG. 1;
  • FIG. 10 is a flow diagram taken from the perspective of the LI latch of a Master Agent, on the previously described bus or ring;
  • FIG. 11 is a programming flow diagram 1100 for a Slave Agent.
  • BUS - a wire or group of wires used to transmit data and control between two nodes .
  • the term bus is used interchangeable with the term RING in this invention for a closed loop BUS topology.
  • HETEROGENOUS - networks based on standards-conforming hardware and software interfaces used in common by different products, thus allowing them to communicate with each other.
  • the Internet itself is an example of a heterogeneous network.
  • LAN - A local area network is a group of computers and associated devices that share a common communications line and typically share the resources of a single processor or server within a small geographic area (for example, within an office building) .
  • the server has applications and data storage that are shared in common by multiple computer users .
  • a local area network may serve as few as two or three users (for example, in a home network) or many as thousands of users (for example, in an FDDI network) .
  • MASTER / SLAVE - Master A communicating entity, which generates requests and consumes responses .
  • a master connects to the communications fabric through a Master Agent.
  • Slave A communicating entity, which consumes requests and produces responses.
  • a Slave connects to the communications fabric through a Slave Agent .
  • a Token Ring topology forms a logical ring but has the cable layout of a star topology, with a central hub.
  • a true ring topology is rare since it is easier to plan and install a star topology.
  • ROUND-TRIP - is a complete send and receive transaction from a Master
  • Agent over the ring or bus comprising both a request and a response.
  • a Slave Agent cannot start a request.
  • TOKEN RING NETWORK - Token Ring network is a local area network (LAN) in which all computers are connected in a ring or star topology and a binary digit, or token passing scheme is used in order to prevent the collision of data between two computers that want to send messages at the same time.
  • the Token Ring protocol is the second most widely-used protocol on local area networks after Ethernet .
  • the IBM Token Ring protocol led to a standard version, specified as IEEE 802.5. Both protocols are used and are very similar.
  • IEEE 802.5 Token Ring technology provides for data transfer rates of either 4 or 16 megabits per second. A brief description of the technology is described below:
  • a computer When a computer has a message to send, it inserts a token in an empty frame (this may consist of simply changing a 0 to a 1 in the token bit part of the frame) and inserts a message and a destination identifier in the frame.
  • WAN - wide area network
  • LAN local area network
  • a wide area network may be privately owned or rented, but the term usually connotes the inclusion of public (shared user) networks.
  • FIG. IA is a block diagram of a typical Token Ring network 100 illustrating two Master Agents 102 and 106 (Ml and M2) and two Slave Agents 104 and 108 (SI and S2) , according to the present invention.
  • Each agent 102, 104, 106, and 108 is connected by a serial or parallel bus or ring 110.
  • Master Agent 1 102 is connected from the parallel ring 110 at port 112, and is connected to the ring 110 at port 114.
  • FIG. IB is a block diagram of a packet 120, illustrated as an example of how data bits 122 and control bits 124 are defined, according to the present invention.
  • the data packet 120 is shown to be 64 bits wide, or 8 bytes. Associated with each byte is a parity bit. This results in a total data bit width of 72 bits. It is important to note that the total number bits and the allocation of data bits 122 and control bits 124 may change and is not limiting to the teachings of the present invention.
  • 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.
  • a Master Agent can issue a new request only when it has the token, as with the normal Token Ring protocol.
  • the normal token protocols there are several departures f om the normal token protocols .
  • a round trip is a round trip from a Master Agent over the ring or bus comprising both a request and a response.
  • a Slave Agent cannot start a request .
  • the Master Agent 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 it 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 . This avoids deadlock by pre-allocating a slot for the slave response.
  • the Slave Agent 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 token is used by the Master Agent to initiate a complete round trip.
  • the token used by the Master Agent reserves space for both the request and the response.
  • More than one token can be circulating on the ring at any time .
  • FIG. 2 shown is a logic block diagram, illustrating an embodiment of an interface 200 between the bus 110 and an agent (102, 104, 106, and 108), which may be a Master Agent (102 and 106) or Slave Agent (104 and 108) .
  • a L2 latch 202 is connected to the previous agent (not shown) at port 112. It receives the control and data information in the packet 120 via lines 210. Once the control bits 124 is latched in the L2, the CTS (Clear To Send) 212 signal is sent back upstream to the previous agent (not shown) . A decision is made based on the received control bits 124 in L2 as to whether the associated data is for this agent 200. If it is, the control bits 124 are passed on to the L3 latch 208 via line 228 for processing by this agent. This described the receiving of control bits and data bits for this agent.
  • the agent has information to be put on to the ring 218, the information is presented to the LI 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.
  • connection 226 If the data that was received by the L2 latch 202, is not for this agent it is presented to the LI latch 204 using connection 226.
  • the LI 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 LI latch 204.
  • the sending Master Agent may retry, or do a timeout and try again later.
  • FIGs. 3 through 9 shown is a series of logical diagrams illustrating simultaneous communication for an exemplary time period TO - T6 for a ring network topology 100 of FIG. 1, according to the present invention .
  • a labeling convention for each alphanumeric from the left-to-right, where # denotes a place holder for FIGs 3 - 9 is as follows:
  • the first number is the number of the figure e. g., 3#### and 8####;
  • alpha numeric is the type of agent and it's number, where M is for Master Agent and S is for Slave Agent, e.g. , #M1## and
  • 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 FIG. 4, Master Agent 2 (M2) to Slave Agent 2 (S2) .
  • Time TO Referring to FIG. 3, shown are four ring agents and the four interconnecting cables. At this time defined as T-0, the ring agents have just been powered up or have been reset. Reset initializes n-1 agents with tokens. Where n is the total number of ring agents. In this example, there are 4 ring agents (102, 104, 106, and 108) so the maximum number of tokens would be 3.
  • 3S1L2 has a token, labeled T2.
  • L2 3M2L2 has a token, labeled T3.
  • FIG. 4 shown are four ring agents and the four interconnecting cables.
  • T-l the Master Agents have reacted simultaneously to their individual control by pulling in the given tokens and placing their request on the bus 110 as described below.
  • LI 4M1L1 has the request Ml: Read S2 in its register.
  • L2 4M1L2 has a blank in its register
  • L3 4M1L3 has a blank in its register
  • Slave Agent 1 has received the T2 token but cannot initiate any requests, therefore:
  • bus 110 agents have just completed a transmission of their individual content to the next bus 110 agent .
  • 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:
  • bus 110 agents Referring to FIG. 6, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-3, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent.
  • Master Agent 1 has received the Master Agent 2 command to write SI. This command is not for this Master Agent. Therefore:
  • Slave Agent 1 has received blank information. Therefore:
  • bus 110 agents Referring to FIG. 7, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-4, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent.
  • L3 6S1L3 has the command M2 : Write SI in its register. This command is for this Slave Agent, therefore the Write command from Master Agent 2 will be performed. The results of the command will be put into the L4 register.
  • Slave Agent 2 has the command Ml: Read S2 in its register. As this command is for this Slave Agent the Read command from Master Agent 1 will be performed. Therefore:
  • bus 110 agents Referring to FIG. 8, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-5, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent.
  • L3 8S1L3 has a blank.
  • the response M2 Write verify SI in LI
  • bus 110 agents shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-6, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent .
  • one Master Agent places n-1 tokens on the ring, where n is the total number of ring agents.
  • a token is simply a short message, which indicates permission for a Master Agent to initiate a request. All of these tokens can be identical.
  • all ring agents put a token on the ring except for the agent coupled to Access Macro.
  • the L2 latch has a single buffer. If the buffer is empty, a signal is presented to the upstream LI that it is clear to send.
  • the Ll can set CTS to the L4 and take the data.
  • the Ll can only set CTS to the L4 if the Ll sees CTS from the downstream agent and the L2 indicates Valid and Token. In this case, the Ll issues CTS to both L2 and L4.
  • the L4 data is forwarded on the bus 110, and the L2 data (the token) is discarded.
  • FIG. 10 illustrates a flow diagram 1000 taken from the perspective of the Ll latch of a Master Agent, on the previously described bus or ring
  • a summing node 1002 from which the process begins .
  • 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.
  • 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.
  • 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 Ll, in step 1016, and the ring 110 is indexed by returning to the summing node 1002.
  • 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.
  • step 1012 if the data from the bus 110 equals the token, then in step 1014 the Master request is placed into the Ll, 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 Ll and the ring 110 is indexed by returning to summing node 1002.
  • FIG. 11 shown is a programming flow diagram 1100 for a Slave Agent.
  • a summing node 1102. This point represents a cycle on the ring 110 if entered.
  • step 1104. the first decision block NOT Ll 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
  • 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.
  • 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.
  • 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 Ll or the Slave response is transferred to the Ll 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.
  • 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 Ll 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 Ll 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.
  • the present invention 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.
  • 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.
  • 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 nonvolatile memory, such as ROM, Flash memory, floppy disk, Disk drive memory, CDROM, and other permanent storage. Additionally, a computer readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits.
  • 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.
  • 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.

Abstract

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 (102, 106) or slave agent (104, 108) with an input (112) and an output.(114). In one embodiment, the input (112) and the output (114) are latches. The method permits the number of tokens on the ring (110) to be equal to up to one less than the total number of agents on the ring (110).

Description

METHOD AND SYSTEM FOR SIMULTANEOUS MANAGEMENT OF MULTIPLE TOKENS ON A COMMUNICATION RING
Field of the Invention
This invention generally relates to the field of computer networks .
Background of the Invention
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.
DISCLOSURE OF THE INVENTION
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. hen 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.
According to a first aspect, there is provided a method for simultaneous communication over a bus coupling at least one master agent with at least one slave agent, the method on a master agent having an input and an output to the bus comprising the steps of : determining if there is data from the master or data from the bus, and if there is data from the master then performing the sub-steps of: testing if the data from the bus is a token; if the data from the bus is a token, then moving the data from the master to the bus and discarding the token from the bus; and if the data is not a token from the bus, then moving the data from the input of the bus to the output of the bus; wherein if the data is from the bus, then moving the data from the input of the bus to the output of the bus .
Preferably if there is no data on the output or if an advance line is asserted and if there is no data on the output or an advance line is asserted then performing the step of determining if there is data from the bus or if there is data from the master. In a preferred embodiment, the method further comprises the step of: determining if the master agent is coupled to an access macro and if the master agent is coupled to an access macro, then when the bus is initialized performing the step of placing tokens on the bus, where the maximum number of tokens on the bus is set equal to a total number of master agents plus the total number of slave agents less one. Aptly, the method further comprises the steps of receiving a reset command; determining after being reset if the master agent is coupled to an access macro and if the master agent is coupled to the access macro then placing n-1 tokens on the bus, where n is the total number of master agents and slave agents communicating on the bus .
According to a second aspect, there is provided a computer program comprising program code means adapted to perform all the steps of the above method when said program is run on a computer.
According to a third aspect, there is provided a method for simultaneous communication over a bus which couples at least one master agent with at least one slave agent, the method on a slave agent having an input and an output to the bus comprising the steps of : determining if there is data from the bus or from the slave and if there is data from the bus but not from the slave then moving the data from the bus to the output and if there is data from the slave but not the bus then moving the data from the slave to the output; determining if there is data both from the bus and the slave and if there is data from both the bus and the slave then performing the sub-steps of: if the bus has priority then moving the data from the bus to the output and setting the priority to the slave; and if the bus does not have priority then moving the data from the slave to the output and setting the priority to the bus. Aptly, the method further comprises the step of: determining if there is no data on output or if an advance line is asserted and if there is no data on output or an advance line is asserted then performing the step of determining if there is data from the bus or if there is data from the slave.
According to a fourth aspect, there is provided a computer program comprising program code means adapted to perform all the steps of the above method when said program is run on a computer.
According to a fifth aspect, the present invention provides a data communications network for simultaneous communications between two or more agents comprising: at least one agent designated as a slave agent coupled to a communications bus; at least one agent designated as a master agent coupled to the communications bus; an interface to the master agent with an input from the bus and an output to the bus, the interface comprising a plurality of latches for testing if there is data, and if there is data from the master then testing if the data from the bus is a token; if the data from the bus is a token, then moving the data from the master to the bus and discarding the token; and if the data is not a token from the bus, then moving the data from the input of the bus to the output of the bus; wherein if the data is not from the master and the data is from the bus, then moving the data from the input of the bus to the output of the bus .
According to a fourth aspect, the present invention provides a data communications network for simultaneous communications between two or more agents comprising: at least one agent designated as a slave agent coupled to a communications bus; at least one agent designated as a master agent coupled to the communications bus; an interface on each slave agent with an input to the bus and an output to the bus, the interface comprising a plurality of latches for testing if there is data from the bus or from the slave agent and if there is data from the bus but not from the slave then moving the data from the bus to the output and if there is data from the slave but not from the bus then moving the data from the slave to the output; wherein the plurality of latches tests if there is data both from the bus and data from the slave and if there is data from both the bus and from the slave then testing if the bus has priority and: if the bus has priority then moving the data from the bus to the output and setting the priority to the slave; and if the bus does not have priority then moving the data from the slave to the output and setting the priority to the bus.
Preferably, the data further includes control, data and parity data. More preferably, at least one of the communication agents is coupled to a first brand of computer and at least one of the communications agents is coupled to a second brand of computer so as to form a heterogeneous environment. Still more preferably, the bus is selected from a group of buses consisting of wire, wireless and infrared.
In a preferred embodiment, an interface on each slave agent comprises a plurality of latches for testing if the data is for the slave agent and if the data is for the slave agent then transferring the data to the slave. Preferably, the interface to the master agent further comprises a plurality of latches for testing if the data is for the master agent and if the data is for the master agent, then passing the data to the master.
According to a fifth aspect, there is provided a data communications network for simultaneous communications between two or more agents comprising: at least one agent designated as a master agent coupled to the communications bus as described above; and at least one agent designated as a slave agent coupled to the communications bus as described above .
According to a sixth aspect, there is provided a computer readable medium containing programming instructions for simultaneous communication over a bus coupling at least one master agent with at least one slave agent, the method on a master agent having an input and an output to the bus, the programming instructions comprising: receiving a reset command; determining after being reset if the master agent is coupled to an access macro and if the master agent is coupled to the access macro then placing n-1 tokens on the bus, where n is the total number of master agent agents and slave agents communication on the bus .
According to a seventh aspect, there is provided a computer readable medium containing programming instructions for simultaneous communication over a bus coupling at least one master agent with at least one slave agent, the method on a master agent having an input and an output to the bus, the programming instructions comprising: determining if there is data from the master, and if there is data from the master then performing the programming instructions of: testing if the data from the input is a token; if the data from the bus is a token, then moving the data from the master to the bus and discarding the token; and if the data from the bus is not a token, then moving the data from the input of the bus to the output of the bus; wherein if the data is not from the master and the data is from the bus, then moving the data from the input of the bus to the output of the bus .
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described, by way of example only, with reference to preferred embodiments thereof, as illustrated in the following drawings, in which:
FIG. IA is a block diagram of a typical Token Ring network illustrating two Master Agents and two Slave Agents;
FIG. IB is a block diagram of a packet, illustrated as an example of how data and control is defined;
FIG. 2 is a logic block diagram, illustrating an embodiment of an interface between the bus and an agent, which may be a Master Agent or Slave Agent;
FIGs. 3 through 9, are a series of logical diagrams illustrating simultaneous communication for an exemplary time period TO - T6 for a ring network topology of FIG. 1;
FIG. 10 is a flow diagram taken from the perspective of the LI latch of a Master Agent, on the previously described bus or ring; and
FIG. 11 is a programming flow diagram 1100 for a Slave Agent.
DETAILED DESCRIPTION OF THE PRESENT INVENTION
Glossary of Terms Used in this Disclosure
AGENT - a set of data communications logic which connects a requester
(master) or responder (slave) to a communications fabric.
BUS - a wire or group of wires used to transmit data and control between two nodes . The term bus is used interchangeable with the term RING in this invention for a closed loop BUS topology. HETEROGENOUS - networks based on standards-conforming hardware and software interfaces used in common by different products, thus allowing them to communicate with each other. The Internet itself is an example of a heterogeneous network.
LAN - A local area network (LAN) is a group of computers and associated devices that share a common communications line and typically share the resources of a single processor or server within a small geographic area (for example, within an office building) . Usually, the server has applications and data storage that are shared in common by multiple computer users . A local area network may serve as few as two or three users (for example, in a home network) or many as thousands of users (for example, in an FDDI network) .
MASTER / SLAVE - Master: A communicating entity, which generates requests and consumes responses . A master connects to the communications fabric through a Master Agent. Slave: A communicating entity, which consumes requests and produces responses. A Slave connects to the communications fabric through a Slave Agent .
RING - a closed-loop topology that forms a logical ring. A Token Ring topology forms a logical ring but has the cable layout of a star topology, with a central hub. A true ring topology is rare since it is easier to plan and install a star topology.
ROUND-TRIP - is a complete send and receive transaction from a Master
Agent over the ring or bus comprising both a request and a response. A Slave Agent cannot start a request.
SIMULTANEOUS - communications on a bus in which more that one AGENT either Master Agent or Slave Agent, communicates at the same time independent of a clock signal. Contrast with Isochronous and synchronous. The communication occurs between two or more agents coupled to the bus so that a request and reply is accomplished in one round-trip or cycle of the bus.
TOKEN RING NETWORK - Token Ring network is a local area network (LAN) in which all computers are connected in a ring or star topology and a binary digit, or token passing scheme is used in order to prevent the collision of data between two computers that want to send messages at the same time. The Token Ring protocol is the second most widely-used protocol on local area networks after Ethernet . The IBM Token Ring protocol led to a standard version, specified as IEEE 802.5. Both protocols are used and are very similar. The IEEE 802.5 Token Ring technology provides for data transfer rates of either 4 or 16 megabits per second. A brief description of the technology is described below:
1. Empty information frames are continuously circulated on the ring.
2. When a computer has a message to send, it inserts a token in an empty frame (this may consist of simply changing a 0 to a 1 in the token bit part of the frame) and inserts a message and a destination identifier in the frame.
3. The frame is then examined by each successive workstation. If the workstation sees that it is the destination for the message, it copies the message from the f ame and changes the token back to 0.
4. When the frame gets back to the originator, it sees that the token has been changed to 0 and that the message has been copied and received. It removes the message from the frame.
5. The frame continues to circulate as an "empty" frame, ready to be taken by a workstation when it has a message to send. WAN - (wide area network) is a geographically dispersed telecommunications network and the term distinguishes a broader telecommunication structure from a local area network (LAN) . A wide area network may be privately owned or rented, but the term usually connotes the inclusion of public (shared user) networks.
Ring Topology and Packet Definition
FIG. IA is a block diagram of a typical Token Ring network 100 illustrating two Master Agents 102 and 106 (Ml and M2) and two Slave Agents 104 and 108 (SI and S2) , according to the present invention. Each agent 102, 104, 106, and 108 is connected by a serial or parallel bus or ring 110. Master Agent 1 102 is connected from the parallel ring 110 at port 112, and is connected to the ring 110 at port 114.
FIG. IB is a block diagram of a packet 120, illustrated as an example of how data bits 122 and control bits 124 are defined, according to the present invention. In this embodiment, the data packet 120 is shown to be 64 bits wide, or 8 bytes. Associated with each byte is a parity bit. This results in a total data bit width of 72 bits. It is important to note that the total number bits and the allocation of data bits 122 and control bits 124 may change and is not limiting to the teachings of the present invention.
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 f om the normal token protocols .
• A round trip is a round trip from a Master Agent over the ring or bus comprising both a request and a response. 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 it 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 . This avoids deadlock by pre-allocating a slot for the slave 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 token is used by the Master Agent to initiate a complete round trip. The token used by the Master Agent reserves space for both the request and the response.
• More than one token can be circulating on the ring at any time .
Agent Interface
Turning now to FIG. 2, shown is a logic block diagram, illustrating an embodiment of an interface 200 between the bus 110 and an agent (102, 104, 106, and 108), which may be a Master Agent (102 and 106) or Slave Agent (104 and 108) . A L2 latch 202, is connected to the previous agent (not shown) at port 112. It receives the control and data information in the packet 120 via lines 210. Once the control bits 124 is latched in the L2, the CTS (Clear To Send) 212 signal is sent back upstream to the previous agent (not shown) . A decision is made based on the received control bits 124 in L2 as to whether the associated data is for this agent 200. If it is, the control bits 124 are passed on to the L3 latch 208 via line 228 for processing by this agent. This described the receiving of control bits and data bits for this agent.
If the agent has information to be put on to the ring 218, the information is presented to the LI 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 LI latch 204 using connection 226. The LI 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 LI 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 FIGs. 3 through 9, shown is a series of logical diagrams illustrating simultaneous communication for an exemplary time period TO - T6 for a ring network topology 100 of FIG. 1, according to the present invention .
A labeling convention for each alphanumeric from the left-to-right, where # denotes a place holder for FIGs 3 - 9 is as follows:
1. the first number is the number of the figure e. g., 3#### and 8####;
2. next, the alpha numeric is the type of agent and it's number, where M is for Master Agent and S is for Slave Agent, e.g. , #M1## and
#S2## 3. next, the label is for a latch L and the number of the latch ###L2 and ###L3
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 FIG. 4, Master Agent 2 (M2) to Slave Agent 2 (S2) .
Time TO Referring to FIG. 3, shown are four ring agents and the four interconnecting cables. At this time defined as T-0, the ring agents have just been powered up or have been reset. Reset initializes n-1 agents with tokens. Where n is the total number of ring agents. In this example, there are 4 ring agents (102, 104, 106, and 108) so the maximum number of tokens would be 3.
Master Agent l's LI 3M1L1, L3 3M1L3 and L4 3M1L4 are all blank. L2 3M1L2 has a—token, labeled TI .
Slave Agent l's LI 3S1L1, L3 3S1L3 and L4 3S1L4 are all blank. L2
3S1L2 has a token, labeled T2.
Master Agent 2's LI 3M2L1, L3 3M2L3 and L4 3M2L4 are all blank. L2 3M2L2 has a token, labeled T3.
Slave Agent 2's LI 3S2L1, L3 3S2L3 and L4 3S2L4 are all blank. L2 3S2L2 is also blank. There must be one fewer tokens than ring agents circulating on the bus 110.
Time TI
Turning now to FIG. 4, shown are four ring agents and the four interconnecting cables. At this time defined as T-l, the Master Agents have reacted simultaneously to their individual control by pulling in the given tokens and placing their request on the bus 110 as described below.
Master Agent 1 pulls in the TI token and placed the READ S2 request on the bus 110 Therefore:
• LI 4M1L1 has the request Ml: Read S2 in its register. • L2 4M1L2 has a blank in its register • L3 4M1L3 has a blank in its register
• L4 4M1L4 has a blank in its register
Slave Agent 1 has received the T2 token but cannot initiate any requests, therefore:
• LI 4S1L1 has the T2 token in its register
• L2 4S1L2 has a blank in its register
• L3 4S1L3 has a blank in its register
• L4 4S1L4 has a blank in its register.
Master Agent 2 has pulled in the T3 token and placed the request WRITE SI on the bus 110. Therefore:
• LI 4M2L1 has the command M2 : WRITE SI in its register • L2 4M2L2 has a blank in its register
• L3 4M2L3 has a blank in its register
• L4 4M2L4 has a blank in its register.
Slave Agent 2 has not received any tokens and therefore:
• LI 4M2L1 has a blank in its register
• L2 4M2L2 has a blank in its register
• L3 4M2L3 has a blank in its register
• L4 4M2L4 has a blank in its register. This completes the description of T-l.
Time T2
Referring to FIG. 5, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-2, the bus 110 agents have just completed a transmission of their individual content to the next bus 110 agent .
Master Agent 1 has received blank information from the Slave Agent 2 agent. Therefore:
• LI 5M1L1 has a blank in its register • L2 5M1L2 has a blank in its register
• L3 5M1L3 has a blank in its register
• L4 5M1L4 has a blank in its register.
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:
• LI 5S1L1 has the command Ml: read S2 in its register • L2 5S1L2 has a blank in its register
• L3 5S1L3 has a blank in its register
• L4 5S1L4 has a blank in its register.
Master Agent 2 has received the information from the Slave Agent 1 agent. The information is the T2 token. Therefore:
• LI 5M2L1 has the T2 token
• L2 5M2L2 has a blank in its register
• L3 5M2L3 has a blank in its register • L4 5M2L4 has a blank in its register.
Slave Agent 2 has just received the information from the Master Agent 2 agent . Therefore :
• LI 5S2L1 has the M2 : Write SI in its register
• L2 5S2L2 has a blank in its register
• L3 5S2L3 has a blank in its register
• L4 5S2L4 has a blank in its register.
Time T3
Referring to FIG. 6, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-3, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent. Master Agent 1 has received the Master Agent 2 command to write SI. This command is not for this Master Agent. Therefore:
• LI 6M1L1 the command M2 : write SI in its register
• L2 6MlL2.has a blank in its register
• L3 6M1L3 has a blank in its register
• L4 6M1L4 has a blank in its register.
Slave Agent 1 has received blank information. Therefore:
• LI 6S1L2 has a blank in its register
• L2 6S1L2 has a blank in its register
• L3 6S1L3 has a blank in its register
• L4 6S1L4 has a blank in its register.
Master Agent 2 has received the Ml: read S2 command. This command is not for this Master Agent. Therefore:
• LI 6M2L1 has the Ml: read S2 command in its in its register
• L2 6M2L2 has a blank in its register • L3 6M2L3 has a blank in its register
• L4 6M2L4 has a blank in its register.
Slave Agent 2 has received the T2 token. Therefore:
• LI 6S2L1 has the T2 token in its register
• L2 6S2L2 has a blank in its register
• L3 6S2L3 has a blank in its register
• L4 6S2L4 has a blank in its register.
This completes the description of T-3.
Time T4
Referring to FIG. 7, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-4, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent.
Master Agent 1 has received the T2. Therefore:
• LI 6M1L1 has the commanded Ml: READ S2 in its register
• L2 6M1L2 has a bland in its register
• L3 6M1L3 has a blank in its register
• L4 6M1L4 has a blank in its register.
Slave Agent 1 has received the command M2 : Write SI. This command is for this Slave Agent, the Write command from Master 2 will be performed. Therefore:
• LI 6S1L1 has nothing in its register
• L2 6S1L2 has a blank in its register
• L3 6S1L3 has the command M2 : Write SI in its register. This command is for this Slave Agent, therefore the Write command from Master Agent 2 will be performed. The results of the command will be put into the L4 register.
• L4 6S1L4 has a blank in its register.
Master Agent 2 has received blanks from the Slave Agent 1 bus 110 agent . Therefore :
• LI 6M2L1 has a blank in its register
• L2 6M2L2 has a blank in its register
• L3 6M2L3 has a blank in its register
• L4 6M2L4 has a blank in its register
Slave Agent 2 has the command Ml: Read S2 in its register. As this command is for this Slave Agent the Read command from Master Agent 1 will be performed. Therefore:
• LI 6S2L1 has a blank in its register • L2 6S2L2 has a blank in its register • L3 6S2L3 has the command Ml: Read S2 in its register. As this command is for this Slave Agent the Read command from Master Agent 1 will be performed. The results of the command will be put into the L4 register.
• L4 6S2L4 has a blank in its register. This completes the description of T-4.
Time T5
Referring to FIG. 8, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-5, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent.
Master Agent 1 has received blanks from the Slave Agent 1 bus 110 Therefore:
• LI 8M1L1 has a blank in its register
• L2 8M1L2 has a blank in its register
• L3 8M1L3 has a blank in its register • L4 8M1L4 has a blank in its register
Slave Agent 1 has received the T2 token and placed the response M2 : Write Verify SI on the bus 110. Therefore:
• LI 8S1L1 has a blank in its register
• L2 8S1L2 has the token T2 in its register
L3 8S1L3 has a blank. The response M2 : Write verify SI in LI
• L4 8S1L4 has a blank its register.
Master Agent 2 has received blanks from the Slave Agent 1 bus 110 Therefore :
• LI 8M2L1 has a blank in its register
• L2 8M2L2 has a blank in its register • L3 8M2L3 has a blank in its register
• L4 8M2L4 has a blank in its register Slave Agent 2 did not receive any tokens but placed the response Ml : Data from S2 on the bus 110. Therefore:
• LI 8S2L1 has the response M2 : Write verify SI in its register • L2 8S2L2 has a blank in its register
• L3 8S2L3 has a blank in its register
• L4 8S2L4 has a blank in its register.
This completes the description of T-5
Time T6
Referring to FIG. 9, shown are four bus 110 agents and the four interconnecting cables. At this time defined as T-6, the bus 110 agents have just completed another transmission of their individual content to the next bus 110 agent .
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 TI token on the bus 110. Therefore:
• LI 9M1L1 has a blank in its register
• L2 9M1L2 has a blank in its register
• L3 9M1L3 has the response Ml: Data from S2 in its register
• L4 9M1L4 has a blank in its register
Slave Agent 1 has received the T2 token. Therefore:
• LI 9S1L1 has a blank in its register
• L2 9S1L2 has the token T2 in its register • L3 9S1L3 has a blank in its register
• L4 9S1L4 has a blank in its register.
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:
• LI 9M2L1 has a blank in its register • L2 9M2L2 has the response M2 : Write verify SI in its register
• L3 9M2L3 has a blank in its register
• L4 9M2L4 has a blank in its register
Slave Agent 2 did not receive any tokens . Therefore :
• LI 9S2L1 has a blank in its register
• L2 9S2L2 has a blank in its register
• L3 9S2L3 has a blank in its register • L4 9S2L4 has a blank in its register.
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 FIG. 2.
1. At initialization time, one Master Agent places n-1 tokens on the ring, where n is the total number of ring agents. A token is simply a short message, which indicates permission for a Master Agent to initiate a request. All of these tokens can be identical. In another embodiment, at initialization time all ring agents put a token on the ring except for the agent coupled to Access Macro.
2. The L2 latch has a single buffer. If the buffer is empty, a signal is presented to the upstream LI that it is clear to send.
3. When any L4 has data to send, it indicates Valid, and either Request or Response as appropriate, to LI. It can send when it sees CTS from LI .
4. When the LI latch sees a CTS (Clear To Send) signal from the downstream agent, it attempts to find data through the following ordered scheme: A) Looks for Valid from L4
• If the L4 indicates Valid and Response, then the Ll can set CTS to the L4 and take the data.
• If the L4 indicates Valid and Request, then the Ll can only set CTS to the L4 if the Ll sees CTS from the downstream agent and the L2 indicates Valid and Token. In this case, the Ll issues CTS to both L2 and L4. The L4 data is forwarded on the bus 110, and the L2 data (the token) is discarded.
B) If the L2 indicates Valid, set CTS to the L2 and take the data.
• After any L2 sends a response to an L3 , it also forwards a token on the bus 110 (indicates Valid and Token to Ll) (This is always a Master Agent completing a transaction and making the token available for use.
When any L3 receives a request, no special function must be performed. However, the attached logic must ensure that the L3 not receive another request until the L4 has transmitted the response. This is always a Slave Agent receiving a request. It has implicit permission to send, in order to complete the transaction. In one embodiment, the 3 does not assert CTS to the upstream L2 until the L4 is empty.
Flow Diagram For Master Agent
FIG. 10 illustrates a flow diagram 1000 taken from the perspective of the Ll latch of a Master Agent, on the previously described bus or ring
110. At the top of the page is a summing node 1002 from which the process begins .
Below the summing node 1002 is a decision block, step 1004. If there is no data in the Ll 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 Ll 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 Ll, 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 Ll, 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 Ll and the ring 110 is indexed by returning to summing node 1002.
Flow Diagram For Slave Agent
Turning now to FIG. 11, shown is a programming flow diagram 1100 for a Slave Agent. At the top of the page is a summing node 1102. This point represents a cycle on the ring 110 if entered.
Below the summing node 1102 step is the first decision block NOT Ll 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 Ll or the Slave response is transferred to the Ll 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 Ll 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 Ll 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.
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 nonvolatile memory, such as ROM, Flash memory, floppy disk, Disk drive memory, CDROM, 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.
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.

Claims

1. A method for simultaneous communication over a bus coupling at least one master agent with at least one slave agent, the method on a master agent having an input and an output to the bus comprising the steps of :
determining if there is data from the master or data from the bus, and if there is data from the master then performing the sub-steps of:
testing if the data from the bus is a token;
if the data from the bus is a token, then moving the data from the master to the bus and discarding the token from the bus; and
if the data is not a token from the bus, then moving the data from the input of the bus to the output of the bus;
wherein if the data is from the bus, then moving the data from the input of the bus to the output of the bus.
2. The method according to claim 1, further comprising the step of:
determining if there is no data on the output or if an advance line is asserted and if there is no data on the output or an advance line is asserted then performing the step of determining if there is data from the bus or if there is data from the master.
3. The method according to claim 1 or claim 2, further comprising the step of:
determining if the master agent is coupled to an access macro and if the master agent is coupled to an access macro, then when the bus is initialized performing the step of placing tokens on the bus, where the maximum number of tokens on the bus is set equal to a total number of master agents plus the total number of slave agents less one.
4. The method according to claim l or claim 2, further comprising the steps of :
receiving a reset command; determining after being reset if the master agent is coupled to an access macro and if the master agent is coupled to the access macro then placing n-1 tokens on the bus, where n is the total number of master agents and slave agents communicating on the bus.
5. A method for simultaneous communication over a bus which couples at least one master agent with at least one slave agent, the method on a slave agent having an input and an output to the bus comprising the steps of :
determining if there is data from the bus or from the slave and if there is data from the bus but not from the slave then moving the data from the bus to the output and if there is data from the slave but not the bus then moving the data from the slave to the output;
determining if there is data both from the bus and the slave and if there is data from both the bus and the slave then performing the sub-steps of:
if the bus has priority then moving the data from the bus to the output and setting the priority to the slave; and
if the bus does not have priority then moving the data from the slave to the output and setting the priority to the bus.
6. The method according to claim 5, further comprising the step of:
determining if there is no data on output or if an advance line is asserted and if there is no data on output or an advance line is asserted then performing the step of determining if there is data from the bus or if there is data from the slave.
7. A data communications network for simultaneous communications between two or more agents comprising:
at least one agent designated as a slave agent coupled to a communications bus;
at least one agent designated as a master agent coupled to the communications bus;
an interface to the master agent with an input from the bus and an output to the bus, the interface comprising a plurality of latches for testing if there is data, and if there is data from the master then testing if the data from the bus is a token;
if the data from the bus is a token, then moving the data from the master to the bus and discarding the token; and
if the data is not a token from the bus, then moving the data from the input of the bus to the output of the bus;
wherein if the data is not from the master and the data is from the bus, then moving the data from the input of the bus to the output of the bus .
8. The data communications network, according to claim 7, wherein the interface to the master agent further comprises a plurality of latches for testing if the data is for the master agent and if the data is for the master agent, then passing the data to the master.
9. The data communications network for simultaneous communications between two or more agents comprising:
at least one agent designated as a slave agent coupled to a communications bus;
at least one agent designated as a master agent coupled to the communications bus;
an interface on each slave agent with an input to the bus and an output to the bus, the interface comprising a plurality of latches for testing if there is data from the bus or from the slave agent and if there is data from the bus but not from the slave then moving the data from the bus to the output and if there is data from the slave but not from the bus then moving the data from the slave to the output;
wherein the plurality of latches tests if there is data both from the bus and data from the slave and if there is data from both the bus and from the slave then testing if the bus has priority and:
if the bus has priority then moving the data from the bus to the output and setting the priority to the slave; and if the bus does not have priority then moving the data from the slave to the output and setting the priority to the bus .
10. The data communications network, according to claim 9, wherein the interface on each slave agent further comprises a plurality of latches for testing if the data is for the slave agent and if the data is for the slave agent then transferring the data to the slave.
11. A data communications network for simultaneous communications between two or more agents comprising:
at least one agent designated as a master agent coupled to the communications bus as claimed in claim 7 or claim 8 ; and
at least one agent designated as a slave agent coupled to the communications bus as claimed in claim 9 or claim 10.
1 . A computer program comprising program code means adapted to perform all the steps of claims 1 to 4 when said program is run on a computer.
13. A computer program comprising program code means adapted to perform all the steps of claims 5 to 6 when said program is run on a computer.
PCT/GB2003/000127 2002-01-23 2003-01-15 Method and system for simultaneous management of multiple tokens on a communication ring WO2003063424A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020047001459A KR100628630B1 (en) 2002-01-23 2003-01-15 Method and System For Simultaneous Management of Multiple Tokens On a Communication Ring
JP2003563158A JP3995249B2 (en) 2002-01-23 2003-01-15 Method and system for simultaneous management of multiple tokens on a communication ring

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/055,335 US7099922B2 (en) 2002-01-23 2002-01-23 Method and system for simultaneous management of multiple tokens on a communication ring
US10/055,335 2002-01-23

Publications (2)

Publication Number Publication Date
WO2003063424A2 true WO2003063424A2 (en) 2003-07-31
WO2003063424A3 WO2003063424A3 (en) 2003-09-12

Family

ID=21997161

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2003/000127 WO2003063424A2 (en) 2002-01-23 2003-01-15 Method and system for simultaneous management of multiple tokens on a communication ring

Country Status (6)

Country Link
US (1) US7099922B2 (en)
JP (1) JP3995249B2 (en)
KR (1) KR100628630B1 (en)
CN (1) CN100367728C (en)
TW (1) TWI236813B (en)
WO (1) WO2003063424A2 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100582814B1 (en) * 1999-05-25 2006-05-23 세이프페이 오스트레일리아 피티와이 리미티드 Method and system for handling network transactions
US7046621B2 (en) * 2002-07-10 2006-05-16 I/O Controls Corporation Redundant multi-fiber optical ring network
US6961306B2 (en) * 2002-07-10 2005-11-01 I/O Controls Corporation Fiber optic control network and related method
US6965560B2 (en) * 2002-07-10 2005-11-15 I/O Controls Corporation Multi-tier, hierarchical fiber optic control network
FR2849730A1 (en) * 2003-01-02 2004-07-09 Thomson Licensing Sa Ethernet bus type communication network node reserving method, involves circulating token between nodes to send Ethernet packet one by one on bus, where preset fraction of band reserved for node corresponds to specific sequence
US8228931B1 (en) * 2004-07-15 2012-07-24 Ciena Corporation Distributed virtual storage switch
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7809871B2 (en) * 2006-12-07 2010-10-05 Integrated Device Technology Inc. Common access ring system
JP5012387B2 (en) * 2007-10-05 2012-08-29 ヤマハ株式会社 Speech processing system
CN101594433A (en) * 2008-05-30 2009-12-02 鸿富锦精密工业(深圳)有限公司 Networking telephone audio monitoring system and method
CN102047616B (en) * 2008-06-02 2015-06-10 三菱电机株式会社 Data communication system and data communication device
US8203932B2 (en) * 2008-12-02 2012-06-19 Electronics And Telecommunications Research Institute Method and system for protection switching in ethernet ring
CN102710480B (en) * 2008-12-25 2015-11-18 三菱电机株式会社 Communications Management Units, communicator and communication means
WO2010073352A1 (en) * 2008-12-25 2010-07-01 三菱電機株式会社 Data communication system and data communication device
TWI474678B (en) * 2009-06-12 2015-02-21 Mitsubishi Electric Corp Communication management device and data communication method
GB2484483B (en) * 2010-10-12 2018-07-11 Advanced Risc Mach Ltd Communication using integrated circuit interconnect circuitry
KR101720347B1 (en) * 2011-01-20 2017-03-27 엘에스산전 주식회사 Adaptive multi redundant ring topology system and Method for selecting the detour
WO2013128499A1 (en) * 2012-02-27 2013-09-06 パナソニック株式会社 Master device, communication system, and communication method
US9213660B2 (en) * 2013-06-14 2015-12-15 Arm Limited Receiver based communication permission token allocation
US10205666B2 (en) * 2013-07-29 2019-02-12 Ampere Computing Llc End-to-end flow control in system on chip interconnects
TWI743736B (en) * 2020-04-08 2021-10-21 瑞昱半導體股份有限公司 Data transceiver system, circuit, and method
KR102338517B1 (en) * 2021-04-28 2021-12-13 주식회사 인코어드 테크놀로지스 Remote terminal unit for solar power generation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4602365A (en) * 1984-02-10 1986-07-22 Prime Computer, Inc. Multi-token, multi-channel single bus network
US4680757A (en) * 1985-04-15 1987-07-14 Hitachi, Ltd. Method of and apparatus for storing priority levels in token-ring network system
US5228027A (en) * 1990-08-24 1993-07-13 Noboru Yamaguchi Data communication apparatus

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU622208B2 (en) * 1988-08-12 1992-04-02 Digital Equipment Corporation Frame removal mechanism for token ring networks
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5235593A (en) * 1989-12-01 1993-08-10 National Semiconductor Corporation Ring latency timer
US5155726A (en) * 1990-01-22 1992-10-13 Digital Equipment Corporation Station-to-station full duplex communication in a token ring local area network
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Integrated circuit i/o using a high performance bus interface
JPH04332065A (en) * 1991-05-08 1992-11-19 Matsushita Electric Ind Co Ltd Method for transferring data
US6275864B1 (en) * 1991-08-13 2001-08-14 Storage Technology Corporation Matrix switch for a network management system
SE501373C2 (en) * 1992-12-17 1995-01-30 Televerket Device at communication networks
JP2793489B2 (en) * 1993-01-13 1998-09-03 インターナショナル・ビジネス・マシーンズ・コーポレイション Common data link interface
US5689678A (en) * 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
US5457683A (en) * 1993-05-07 1995-10-10 Apple Computer, Inc. Link and discovery protocols for a ring interconnect architecture
US5805914A (en) * 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
FR2710804B1 (en) * 1993-09-29 1995-11-10 Alcatel Business Systems Digital device for connecting a plurality of workstations to a local ring network.
US5666497A (en) * 1995-03-08 1997-09-09 Texas Instruments Incorporated Bus quieting circuits, systems and methods
US5657315A (en) * 1995-06-01 1997-08-12 International Business Machines Corporation System and method for ring latency measurement and correction
US5634138A (en) * 1995-06-07 1997-05-27 Emulex Corporation Burst broadcasting on a peripheral component interconnect bus
US5764634A (en) * 1996-03-13 1998-06-09 International Business Machines Corporation Lan switch with zero latency
US5970510A (en) * 1996-04-10 1999-10-19 Northrop Grumman Corporation Distributed memory addressing system
EP0802655A3 (en) * 1996-04-17 1999-11-24 Matsushita Electric Industrial Co., Ltd. Communication network
US5764896A (en) * 1996-06-28 1998-06-09 Compaq Computer Corporation Method and system for reducing transfer latency when transferring data from a network to a computer system
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US5948089A (en) * 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
JP3813013B2 (en) * 1998-01-23 2006-08-23 松下電器産業株式会社 Network controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4602365A (en) * 1984-02-10 1986-07-22 Prime Computer, Inc. Multi-token, multi-channel single bus network
US4680757A (en) * 1985-04-15 1987-07-14 Hitachi, Ltd. Method of and apparatus for storing priority levels in token-ring network system
US5228027A (en) * 1990-08-24 1993-07-13 Noboru Yamaguchi Data communication apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. TANENBAUM: "Computer networks" 3 August 1996 (1996-08-03) , PRENTICE-HALL INTERNATIONAL, INC , AMSTERDAM, NL XP002241957 ISBN: 0-13-349945-6 page 292, paragraph 4.3.3 -page 294, paragraph 2 *

Also Published As

Publication number Publication date
JP2005516477A (en) 2005-06-02
US20030140109A1 (en) 2003-07-24
KR100628630B1 (en) 2006-09-26
CN100367728C (en) 2008-02-06
KR20040070167A (en) 2004-08-06
TW200307427A (en) 2003-12-01
CN1620783A (en) 2005-05-25
JP3995249B2 (en) 2007-10-24
TWI236813B (en) 2005-07-21
US7099922B2 (en) 2006-08-29
WO2003063424A3 (en) 2003-09-12

Similar Documents

Publication Publication Date Title
US7099922B2 (en) Method and system for simultaneous management of multiple tokens on a communication ring
US5764895A (en) Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus
US6012099A (en) Method and integrated circuit for high-bandwidth network server interfacing to a local area network
US5041963A (en) Local area network with an active star topology comprising ring controllers having ring monitor logic function
US4982400A (en) Ring bus hub for a star local area network
US5495481A (en) Method and apparatus for accelerating arbitration in a serial bus by detection of acknowledge packets
US20010024423A1 (en) Method and apparatus for the addition and removal of nodes from a common interconnect
US20020188783A1 (en) Fly-by serial bus arbitration
JPH063913B2 (en) Data transfer method
US6529518B1 (en) Method and apparatus for providing a network interface
US5666488A (en) Port expansion network and method for lAN hubs
Ahuja S/Net: A high-speed interconnect for multiple computers
US5467351A (en) Extendible round robin local area hub network
US8407330B2 (en) Method and apparatus for the addition and removal of nodes from a common interconnect
US5621893A (en) System for expanding ports wherein segment switch selectively associates plurality of hubs coupled to first arbiter and plurality of hubs coupled to second arbiter
US20010019579A1 (en) Infinitely expandable ethernet network repeater unit
EP0505781B1 (en) Multi-media serial line switching adapter for parallel networks and heterogeneous and homologous computer system
US7012925B2 (en) System for transmitting local area network (LAN) data frames
JP2001257686A (en) Computer system and its data communication method
van Dijk et al. Performance measurements of a communication protocol implemented for distributed real-time systems
Sadiku et al. Local Area Networks
Chu et al. Reservation channel access protocol for high speed local networks with star configurations
RU2200344C2 (en) Method for delaying message block transmission to computer network data bus
KR900006971B1 (en) Method and arrangement for communicating between processors having variable priorties
RU2068579C1 (en) Method user access to data bus in ethernet local network and device which implements said method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020047001459

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 1708/DELNP/2004

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 1-2004-501071

Country of ref document: PH

WWE Wipo information: entry into national phase

Ref document number: 1200400691

Country of ref document: VN

WWE Wipo information: entry into national phase

Ref document number: 20038025787

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2003563158

Country of ref document: JP

122 Ep: pct application non-entry in european phase