DISTRIBUTED NETWORK SYNCHRONIZATION SYSTEM

Abstract: A novel distributed synchronization system for use in each node of a distribute asynchronous telecommunications network system that continually monitors and controls the flow of data through an implementing node to prevent dataflow errors due to phase and frequency differences in source and destination nodal clocks, and to make the entire ring delay an integer number of frame packets to support the transmission of synchronous data. A synchronization data FIFO for storing predetermined fields or portions of fields of a unique frame packet received from a source node and to be transmitted to a destination node on the network. The frame packet includes a frame synchronization field indicating the beginning of a new frame packet; a payload field containing valid data; and a dead zone field providing bandwidth during which the present invention performs synchronization functions. A frame synchronization subsystem, implemented in a designated master node, guarantees that a frame is released at the beginning of an independently-determined frame regardless of ring latency. A word resynchronization subsystem manages the flow of data through the data FIFO of each non-master node, receiving and storing the data at the source node clock rate and transmitting the data according to its own clock, thereby guaranteeing the efficient receipt and transmission of data between asynchronously-communicating nodes.

Description: DISTRIBUTED NETWORK SYNCHRONIZATION SYSTEM CROSS-REFERENCES TO RELATED APPLICATIONS AND PATENTS The following commonly-owned patents and applications are related to the present invention and are incorporated by reference by this and other references: U.S. patent application Serial No. 08/207,931, filed on March 8, 1994, entitled "Expandable Telecommunications System," and naming as inventor Robert P. Madonna. U.S. Patent No. 5,426,694, entitled "Telecommunications Switch Having Programmable Network Protocols and Communications Services," naming as inventor Mark P. Hebert. U.S. patent application serial no. 08/566,414, entitled "Telecommunications Switch Having A Universal Applications Program Interface," naming as inventor Mark P. Hebert, filed on November 30, 1995. U.S. Patent No. 5,349,579, entitled "Telecommunications Switch With Programmable Communications Services," naming as inventors Robert P. Madonna and Kevin C. Kicklighter. BACKGROUND OF THE INVENTION Field Of The Invention This present invention relates generally to the field of telecommunications and, more specifically, to a novel distributed synchronization system for maintaining word and frame synchronization between asynchronous nodes of a distributed telecommunications system. Related Art Generally, a distributed network system includes a physical carrier transport system that transports data between geographically-distributed nodes. The network may take on any one of a lumber of architectural forms such as bus and ring topologies. In a bus topology, a coaxial cable or an optical fiber are commonly used as the bus. Ethernet, for example, uses a coaxial cable as its transmission medium. In the case of a ring, the physical medium may be a twisted- wire pair, coaxial cable, or optical fiber. In the ring topology, nodes serve as repeaters, receiving and re-transmitting incoming information. Various schemes have been developed to avoid conflicts between nodes using a shared medium in a network. For example, in one common technique, a token-passing distributed-control scheme is used, where permission to transmit is passed sequentially from one station to another by means of a "token," a specified bit or flag set in an information frame, or a specifically-defined control frame. Alternatively, a node currently engaged in transmitting over the median may pass control to the next node upon conclusion of its transmission by setting a token bit in its transmitted frame. A node recognizing the token bit is then free to transmit its own information if it so desires. Thus, multiple tokens may simultaneously exist on the median. In another conventional approach, the currently-transmitting node passes control to the next node (i.e., issues a token) only on the return of its own frame. In this case there is only one token available at any one time, simplifying management ofthe network. Both bus and ring topologies are used to support the token-passing access strategy. In the case of the bus, nodes have to be numbered are in succession to determine which node can next receive the token. In the case ofthe ring the "next" node is implicit in the direction of transmission. In the simplest mode of operation, each node on the ring receives each frame packet and then passes it on (retransmits it) to its neighbor. If that node recognizes the packet destination address as being its own, it copies the frame in addition to retransmitting it. The original sending node takes its own frame off the ring as it returns to the node after one cycle around the ring. In the single-token procedure, the sending node then passes control to the next node by issuing a token after receipt of its own frame packet. A node with a frame to transmit must wait until it receives permission to do so. The time to transfer data from a source node to a destination node is typically used as a measure of network performance. The transfer time is dependent upon a number of factors, a significant one of which is ring latency or delay. There are two major contributors to ring latency: the propagation delay required for a frame packet to cycle once around the ring; and the delay required to retransmit a frame packet at each node on the ring. Lower values of ring latency result in better network performance. The effect of ring latency is compounded by the increased bandwidth capabilities provided in modern high-speed fiber optic systems. As high speed networks become faster due to the packing of bits closer together in the fiber (or wire), the time it takes for a single bit to traverse the fiber stays essentially the same. Thus, for example, it will take approximately the same time to exchange a message between applications on a high speed fiber optic network as it does over a 10 Mb/s Ethernet. However, the increased capability ofthe network to send more bits per unit time as well as the increased capability of nodes to perform more instructions per unit time, results in an increase in the relative delay in the network. That is, the number of instruction cycles that a source node must wait for a reply to its message increases as the CPU cycle times get smaller. As a result ring latency is becoming the largest single cost in distributed network systems. This problem is exacerbated in widely distributed network systems since propagation delay increases with distance. As the nodes in a distributed network become more geographically distributed, the number of instruction cycles that a sending application must wait for its packet to return, or for an answer to its message, increases. In addition, as the node-to-node distance increases in a geographically distributed network system, the propagation delay, and thus ring latency, becomes unpredictable. The unpredictability of distributed network systems is particularly problematic when the nodes are telecommunications switches carrying synchronous PCM (pulse code modulation) data. The unpredictable arrival of frame packets prevents the receiving node from accurately identifying the divisions between PCM samples, thereby inhibiting the transfer of synchronous data through the asynchronous network. Furthermore, to insure proper reception of information over a distributed network, local timing signals controlling the destination node must be precisely matched to those ofthe source node. However, despite operating at the same frequency, timing variations inevitably exist among network components. High frequency variations, referred to as jitter, are typically reduced to manageable levels through the use of jitter filters in each node. Low frequency variations, referred to as wander, are typically d-ealt with in a network through the use of buffers located within the nodes ofthe network. Specifically, these buffers store a small amount of data, allowing it to build up or be drained by small-magnitude wander without data loss or errors. When wander exceed the capacity ofthe buffers, they either repeat (i.e., underflow) or discard (i.e., overflow) blocks of data to compensate for differences in timing between the source and destination nodes. Underflow and overflow operations, generally referred to as slip, typically result in errors within the network. For example, in a voice circuit, slip may be detected by popping or clicking sounds, whereas in data transmissions, slip is manifested in the loss of data. Very large buffers can reduce the probability of such errors, but they increase the delay through the network. Delay is undesirable, so buffers size is minimized. Various techniques have been developed to maintain network synchronization to avoid such loss of data. For example, conventional clock recovery techniques often carry timing information through the network along with the data transmission. A clock recovery system residing in the destination node uses the transmitted timing information to recover the frequency ofthe source node clock and to generate a transmit clock having a frequency at which the destination node transmits the data to a destination user process. In addition, the recovered clock and transmission are provided to other nodes in the network. Regardless ofthe recovery technique, each node employs a phase lock loop or other feedback circuitry that varies around the source node frequency, continually attempting to lock onto that clock frequency. The continual variation around the desired frequency causes jitter. As each subsequent node attempts to recover the clock, the jitter from all previous recovery attempts is accumulated. Eventually, this accumulated jitter exceeds the capacity ofthe destination node, causing permanent phase errors in the transmit clock resulting in data errors. Another drawback to conventional clock recovery systems is that they are based upon the assumption that identical network reference clocks are provided to the source and destination nodes. This is often not the case in geographically-distributed telecommunications systems where it is not uncommon for each portion ofthe network to be synchronized to a different reference clock, i.e., the network system contains multiple timing domains. Although these local clocks may be referenced to stratum 1 clocks, they may exhibit a phase departure over time that continues to increase until a slip in inter-nodal communications occurs. Moreover, if a network element such as a digital cross connect fails, certain network nodes may lose their reference clock. These nodes must then utilize their internal clocks, resulting in an increased loss of data due to the difference in phase and frequency between that node's internal clock and the reference clocks. The resulting phase departure further manifests itself as noted: clicking and popping noises in voice transmissions and in data loss in image and video transmissions. Clearly, these conventional techniques are only as reliable as the consistency ofthe reference clocks utilized by the source and destination nodes. What is needed, therefore, is a means for ensuring that the ring latency in a distributed network system is predictable and guaranteed so as to support the transmission of synchronous >(PCM) data. In addition, the system must be capable of recovering from deviations between source and destination node clocks without loss of data and without causing excessive delays in the transmission ofthe information through each network node. SUMMARY OF THE INVENTION The present invention is a novel distributed synchronization system for use in each node of a distributed asynchronous telecommunications network system that continually monitors and controls the flow of data through an implementing network node so as to prevent dataflow errors due to phase and frequency differences in source and destination nodal clocks, and to make the ring latency an integer number of frame packets to enable the efficient transmission of synchronous data. Specifically, the present invention includes a synchronization data FIFO for storing predetermined fields or portions of fields of a unique frame packet received from a source node that will be subsequently transmitted to a destination node on the network. The novel frame packet includes a frame synchronization field indicating the beginning ofthe frame packet; a payload field containing valid data; and a dead zone field providing bandwidth during which the present invention performs synchronization functions. A frame synchronization subsystem ofthe present invention, implemented in a designated master node, guarantees that a frame is released at the beginning of an independently-determined frame regardless ofthe frame propagation time (ring latency) around the network. A word resynchronization subsystem manages the flow of data through the data FIFO of each non-master node, receiving and storing the data at the source node clock rate and transmitting the data according to its own clock, thereby guaranteeing the efficient receipt and transmission of data between asynchronously-communicating nodes. More specifically, the word resynchronization subsystem controls the operation ofthe synchronization data FIFO to absorb the phase differences between the clocks of a source node and a destination node implementing the invention. A write controller operating at the source node clock rate and a read controller operating at the destination node clock rate asynchronously manage the passage of data through the data FIFO to maintain the level of data in the FIFO at an optimal level. During the receipt of a predetermined portion of a frame transmission wherein no relevant data is placed into the associated frame packet, the FIFO read and write controllers temporarily suspend read and/or write operations from/to the FIFO to maintain the data at the optimal level to efficiently receive and transmit the data while preventing additional delay through the network node. The frame synchronization subsystem on the other hand, buffers only the payload and frame synchronization word ofthe frame packet, which are then held until the beginning of a frame cycle, as determined by the occurrence of a local frame synchronization pulse. Upon transmission, the frame synchronization subsystem transmits only the stored payload and frame synchronization fields, onto which it appends a new, locally-determined dead zone to create a frame packet that is precisely one frame in length. Advantageously, the word resynchronization subsystem ofthe present invention prevents data FIFO overflow and underflow conditions from arising, thereby ensuring error-free transmission through the implementing network node. A significant feature ofthe word resynchronization subsystem is its anticipatory nature, enabling it to perform error correction functions before data is lost. Another feature provided by the invention is the ability to momentarily control either or both the reading and writing of data from and to the FIFO to recover from clock deviations without loss of data and without causing substantial delays in the network. Another advantage ofthe present invention is that the frame synchronization subsystem removes the effects of timing imperfections in the network system by recreating the variable-size dead zone for each frame re-transmitted from the master node such that each frame packet is guaranteed to be exactly equal to a predetermined length required for a single frame transmission. This guarantees that every non-master node receives a frame packet at predetermined intervals of time. The predictable and periodic receipt of frame packet enables the recipient nodes to determine the boundaries between pulse code modulation (PCM) samples. Furthermore, the frame synchronization subsystem automatically adjusts the amount of data buffered in the node, dynamically self-adjusting to the ring latency. BRIEF DESCRD?TION OF THE DRAWINGS The above and further advantages ofthe invention may be better understood by referring to the following description in conjunction with the accompanying drawings in which: Figure 1 is a block diagram of a telecommunications system which employs a ring-type inter-nodal network to transfer information between programmable switching nodes, all of which is constructed in accordance with a preferred embodiment ofthe present invention; Figure 2 is a block diagram of one type of programmable switching node that may be used in the telecommunications system of Figure 1 ; Figure 3 is a block diagram ofthe nodal switch incoφorated in the switching node illustrated in Figure 2; Figure 4 is a block diagram ofthe distributed synchronization system ofthe present invention; Figure 5 is a block diagram showing the novel frame structure utilized by the distributed synchronization system ofthe present invention; Figure 6 is a block diagram showing the word resynchroiώation subsystem of the distributed synchronization system ofthe present invention; Figure 7 is a state diagram illustrating the functions performed by the write controller ofthe word resynchronization subsystem ofthe present invention; Figure 8 is a state diagram illustrating the functions performed by the read controller ofthe word resynchronization subsystem ofthe present invention; Figure 9 is a block diagram showing the frame synchronization subsystem of the distributed synchronization system ofthe present invention; Figure 10 is a state diagram illustrating the functions performed by the write controller ofthe frame synchronization subsystem ofthe present invention; and Figure 11 is a state diagram illustrating the functions performed by the read controller ofthe frame synchronization subsystem ofthe present invention. DETADLED DESCRIPTION OF THE PREFERRED EMBODIMENTS A. System Environment Figure 1 shows a large capacity, expandable, fully programmable telecommunications switching network system 100. The network system 100 includes a series of programmable nodes 102 interconnected by a physical carrier transport system 110. The programmable nodes include programmable switching nodes 102b, 102d, voice processing resources node 102c, and master node 102a. The node 102b includes a host interface 114 which is connected in communicating relationship with host computer 104. Although only a single host computer 104 is shown, use of a local area network (LAN) to provide host/node communications permits multiple hosts to control the system 100 (or parts thereof) by configuring each host as a "client" and each node as a "server." For purposes of improved clarity in this drawing, a single host interface 114 to switching node 102b is illustrated. The nodes may perform any number of functions. For example, nodes 102b and 102d are programming switching nodes and include digital network/line interfaces for connection with a public switched telephone network (PSTN) or a private network 106 and 118, respectively. The term "private network" is intended in a broad sense to refer to any network or line or other interface other than the PSTN. The network/line interfaces 108, 116 may terminate either digital networks or analog trunks/lines, or combinations of both types. Node 102a is nominally designated a "master node," the significance of which is described below. As noted below, any of nodes 102a-102d may be configured as the active master node. However, at any given time, there may be only one active master node. Nodes 102a-102d are connected together by a ring-architecture inter-nodal network 110 which provides for high speed, high bandwidth digital communications between the nodes. .As illustrated, inter-nodal network 100 may be implemented using a ring which enables each ofthe nodes to exchange packetized information with each other node served by network 100. Inter-nodal network 100 may also be implemented with any of a variety of other types of communications networks, including Ethernet or other types of LANs, wireless communications networks and the PSTN (ATM/SONET). Using the PSTN for inter-nodal network 100 permits the nodes to be geographically distributed over large areas. Furthermore, other topologies, such as a bus topology, are contemplated by the present invention. The overall operation of system 100 is controlled by host 104, which is commonly implemented with a personal computer (PC), workstation, or other computer on which a user's application software runs. Host 104 and node 102b exchange messages over LAN RS-232 links 114. Such messages are typically used to configure the node as well as direct call processing functions such as making connections and providing communications services (i.e., tone detection, tone generation and conferencing). The programmable network protocols and communications services supported by nodes 102, as well as the development of such protocols, may be found in U.S. Patent No. 5,426,694 to Mark P. Hebert, entitled "Telecommunications Switch Having Programmable Network Protocols," and U.S. patent application to Mark P. Hebert, entitled "Telecommunications Switch Having A Universal Applications Program Interface," filed on November 30, 1995, Serial No. 08/566,414, both of which are assigned to the assignee ofthe present invention are hereby incoφorated herein by reference in their entirety. Figure 2 shows the major functional components that may be contained in one type of network node 102 which may be used in system 100, such a programmable switching node 102b. Digital or analog network/line interfaces 206 are terminated on a series of line card input/output (IO) cards 204. A series of digital network Tl, El, Jl or analog trunk/line line cards 208 communicate with line card IO cards 204 over line card (LC) IO lines 210. Line cards 208 are also interfaced with redundant switching buses 212a and 212b (collectively and generally referred to as switching bus 212). Other types of network/line interfaces such as DS3, SONET or others may also be provided. Diverse communications services such tone detection -and generation, conferencing, voice recorded announcements, call progress analysis, speech recognition, ADPCM compression and many others are provided by one or more multifunction digital signal processing (MFDSP) DSP cards 214. Details ofthe architecture and operation of MFDSP cards 214 and other optical cards, as well as bus 212, are disclosed in commonly owned U.S. Patent No. 5,349,579, incoφorated herein by reference in its entirety. A ring (network) IO card 216 serves as an interface between ring 110 and a nodal switch 202 ofthe present invention. A host interface may be provided as noted above to establish a communication link with host 104. Other cards may be added to or removed from the illustrative switch 200. For example, ISDN Primary Rate service and other packet communications services may be provided by one or more ISDN-24 cards. Voice processing resource node 102c does not include line cards 208 and line card I O cards 204 since such a node does not interface with a PSTN or other network. However, such nodes include additional components, such as a standard voice processing buses for communicating with, for example, voice processing resources. For example, Dialogic Coφoration of New Jersey produces a family of voice processing resource boards or cards which plug directly into the voice processing buses and may be used in diverse applications including voice mail, fax mail, interactive voice response and others. Other embodiments the nodes 102 are anticipated, comprising the same or different cards as those shown in Figure 2. The detailed construction of a preferred embodiment of nodal switch 202 ofthe present invention is shown in Figure 3. A central processing unit (CPU) with associated RAM/ROM 302 is connected in communicating relationship with a data/address bus 304. CPU 302 is also connected in communicating relationship with an HDLC bus (part of switching buses 212) and may, depending upon the configuration of nodal switch 202, also be connected in communicating relationship with host 104. A data transmitter 306 and receiver 308 are connected in communicating relationship with address/data buses 304 and packet handling circuit 312. A high speed data receiver 314 is physically interfaced with ring 110 for receiving information in packet form from that ring. Receiver 314 is preferably implemented with a Hewlett-Packard Company HDMP-1014 receiver chip, which is an emitter coupled logic (ECL) device. Conversion circuit 316 is connected to receive the output signals of receiver 314 and produce output signals that are compatible with transistor-transistor logic (TTL). The output of conversion circuit 316 is applied to the distributed synchronization system 326 ofthe present invention through a buffer 318. The system 326 output is applied to the packet handling circuit 312 that transfers communications for the implementing node to/from the receiver 308 and the transmitter 306. A buffer 328, conversion circuit 330, and high speed data transmitter 332 perform functions which are complementary to buffer 318, conversion circuit 316 and data receiver 314, respectively. Transmitter 332 is preferably implemented with a Hewlett-Packard Company HDMP-1012 transmitter chip. Receiver 314 recovers the source node clock from a received transmission and distributes the recovered ring clock 322 to the components ofthe nodal switch 202 dedicated to receiving frame packets, including the distributed synchronization system 326 ofthe present invention. Nodal switch 202 includes additional components for timing and synchronization functions. A clock processor 334 that generates a local frame synchronization pulse 324 for use by the distributed synchronization system 326. The local frame synchronization pulse 324 is derived from a network reference clock provided to the implementing node, typically from the PSTN or private network. Finally, a ring oscillator 336 generates a local node ring clock 320 used by the components ofthe nodal switch 202, including the distributed synchronization system 326, to transmit frame packets. The oscillator 336 is connected in communicating relationship with the buses 304 to provide clock signals to all other cards (i.e., other nodal switches, line cards, MFDSP cards and ISDN-24 cards, etc.) associated with a given node for controlling access to the HDLC bus. Further details ofthe nodal switch 202 and the operations performed by the nodal switch 202, may be found in commonly owned U.S. Patent application, Serial No. 08/207,931, filed on March 8, 1994, entitled "Expandable Telecommunications System," naming as inventor Robert P. Madonna, herein incoφorated herein by reference in its entirety. B. Distributed Synchronization System As noted, the adverse effect of ring latency, particularly in high-speed fiber optic systems such as network system 100, significantly reduces the performance of such distributed network systems. Ring latency consists primarily ofthe propagation delay required for a frame packet to cycle once around the ring and the delay required to retransmit a frame packet at each node on the ring. The delay to cycle once around the ring is significant and unpredictable in widely distributed network systems having geographically distributed nodes, thereby preventing the accurate transfer of synchronous PCM (pulse code modulation) data. The unpredictable arrival of frame packets prevents the receiving node from identifying the divisions between PCM samples, thereby inhibiting the transfer of synchronous data through the asynchronous network. Furthermore, due to timing variations between network nodes and conventional clock recovery techniques, accumulated jitter eventually exceeds the capacity ofthe node, preventing clock and data recovery. 1. In General To ensure that the ring latency ofthe distributed network system 100 is predictable and guaranteed to support the transmission of synchronous (PCM) data, the present invention delays the retransmission of frame packets until the occurrence of predetermined frame cycle intervals, thereby extending the ring latency to an integer number of frame cycles. To avoid dataflow errors due to clock deviations between asynchronously-communicating nodes, the present invention performs the receive and retransmit functions asychronously, maintaining the data throughput at an optimal rate to prevent dataflow errors and to limit its contribution to ring latency. Figure 4 is a functional block diagram ofthe distributed synchronization system 326 ofthe present invention. Figure 5 is a schematized block diagram of a novel frame packet structure created by the present invention for exchanging information over the inter-nodal network 100. To maintain both word and frame synchronization between geographic-ally-distributed nodes of an asynchronous network, the present invention comprises two related, yet functionally distinct subsystems: a frame synchronization subsystem operating in a designated master node; and a word resynchronization subsystem operating in the remaining non-master nodes. Each subsystem works in conjunction with a unique frame packet architecture illustrated in Figure 5 and discussed in detail below. Referring to Figure 4, the preferred embodiment ofthe distributed synchronization system 326 comprises a synchronization data FIFO 402, a word resynchronization subsystem 404 and a frame synchronization subsystem 406. Data in the form of frame packets 502 are presented to the data FIFO 402 on data input line 401 from receiver 314 through conversion circuit 316 and buffer 318. Data is read from the data FIFO 402 onto a data output line 403 coupled to the transmitter 332 through packet handling circuit 312, buffer 328 and conversion circuit 330. The word resynchronization subsystem 404 monitors the frame packets presented to the data FIFO 402 via monitor line 412. Subsystem 404 also monitors the level of data in the data FIFO 402 and controls the writing ofthe presented frame packets into the data FIFO 402 via the control/status line 408. As noted, the word resynchronization subsystem 404 asynchronously performs the reception and retransmission of frame packets. Accordingly, it receives as inputs recovered ring clock 322 to control the writing of data into the data FIFO 402; and a master ring clock 320 to control the reading of data from the data FIFO 402. A frame synchronization subsystem 406 monitors the frame packets presented to the data FIFO 402 via the monitor line 412. Subsystem 402 also monitors the level of data in the data FIFO 402 and controls the writing ofthe presented frame packets into the data FIFO 402 via the control/status line 410. Since subsystem 406 also asynchronously performs the reception and retransmission of frame packets, it receives as inputs the recovered ring clock 322 and master ring clock 320 both of which are utilized for the same puφoses as in the word resynchronization subsystem 404. In addition, the subsystem 406 receives the local frame synchronization pulse signal 324 that it uses to transmit the frame packets at independently-determined frame cycles. Figure 5 shows a general frame packet structure 502 for exchanging information over the inter-nodal network 100. Each frame packet 502 comprises a number of fields, each containing one or more words of data, control information or fill frames (i.e., non-data). A frame synchronization field 504 provides an indication ofthe beginning of a frame packet 502. A payload field 506 comprises a number of subpackets, each containing data for transmission between the nodes 102a-102d on the network 100. The payload may contain any type of data packets, such as circuit switched data packets, packet switched data packets, voice processing packets, etc. Additional information regarding the structure ofthe subpackets as well as details of various packet structures for transferring different types of information, is described in a commonly owned U.S. Patent application entitled "Expandable Telecommunications System," Serial No. 08/207,931, filed on March 8, 1994, naming as inventor Robert P. Madonna, incoφorated herein by reference in its entirety. Figure 5 also illustrates is a preferred approach for allocating the bandwidth of the network 100 to allow transfers of circuit switch data by all nodes. Transfer of data over the network is made within framing windows 510, each of which is 125μs in duration. A period of 125μs is preferred since it corresponds with the sampling rate (8KHz) of most widely used network protocols, meaning that the values of circuit switch data may change every 125μs. Therefore, by requiring that all internodal transfers of circuit switch data take place in less than 125μs internodal network 100 insures that all such data is transferred before any value changes. This also permits the internodal network 100 to operate asynchronously with respect to the PSTN or private networks 106,118. The dead zone field 508 is a predetermined variable portion of each frame packet 502 that does not contain valid data. This results in the allocation of a correspondingly limited portion ofthe bandwidth to perform the synchronization functions ofthe present invention. As will be described in detail below, the dead zone field 508 is recreated by the designated master node 102a each time the master node re-transmits a frame packet 502. The word resynchronization subsystem 404 and the frame synchronization subsystem 406 are described in detail below. 2. Word Resynchronization Subsystem The word resynchronization subsystem 404 ofthe present invention is a novel distributed synchronization system for use in each node of an asynchronous network system. The subsystem 404 continually monitors and controls the flow of data through an implementing network node so as to prevent dataflow errors due to phase and frequency differences in the source and destination nodal clocks. Specifically, the word resynchronization subsystem 404 manages the flow of data through the synchronization data FIFO 402, receiving and storing the data at the source node clock rate and transmitting the data according to its own local clock rate, thereby guaranteeing the efficient receipt and transmission of frame packets between asynchronously-communicating nodes without causing undue delay through the node. More specifically, the word resynchronization subsystem 404 controls the operation ofthe data FIFO 402 to absorb the phase differences between the clocks of a source node and the destination node implementing the invention. .An input or write controller 602 operating at the source node clock rate and an output or read controller 604 operating at the destination node clock rate, manage the passage of data through the data FIFO 402 ofthe destination node to maintain the level of data in the FIFO 402 at an optimal level. During the receipt of a predetermined portion of a frame packet containing no relevant data (i.e., the dead zone field 508), the FIFO read and write controllers 402,404 temporarily suspend read and/or write operations from/to the FIFO 402 to maintain the data at the optimal level to recover from clock deviations without loss of data and without causing substantial delays in the network. Referring to Figures 6-8, the novel word resynchronization subsystem 404 of the present invention is described below. Figure 6 is a functional block diagram ofthe word resynchronization subsystem 404 and data FIFO 402 ofthe distributed synchronization system 310 of the present invention. The word resynchronization subsystem 404 generally includes write controller 602, read controller 604, an initializer 606, and a counter 608. The write controller 602 and read controller 604 control the flow of data through data FIFO 402 in response to the data level 620 ofthe FIFO as well as which field ofthe frame packet 502 is currently presented at the input of data FIFO 402. More specifically, the controllers 602,604 ofthe word resynchronization subsystem 404 maintain the data level 620 of data FIFO 402 between an upper threshold level 618 and a lower threshold level 622. The thresholds 618,622 define an optimal range of data level 620 in data FIFO 402 to absorb the phase difference between the source node and the destination node clocks without contributing to ring latency. The upper threshold level 618 is represented by a programmable almost full (PAF) flag 614, while the lower threshold level 622 is represented by a programmable almost empty (PAE) flag 616. Together, the two flags 614,616 provide a current indication ofthe data level 620. The PAE flag 616 indicates when the data level 620 in the data FIFO 402 is below the associated lower threshold level 622. Similarly, the PAF flag 614 indicates when the data level 620 in the data FIFO 402 is above the associated upper threshold level 618. When the data level 620 is at or below the lower threshold 622, the PAE flag 616 is in its active state whereas when the data level 620 is at or above the upper threshold 618, the PAF flag 614 is in its active state. Alternatively, when the data level 620 is above the lower threshold 622 and below the upper threshold 618, the PAE and PAF flags are both inactive. The PAE and PAF flags 614,616 are initially set by initializer 606 via initialization control line 628 to a predetermined level (discussed below) representing their respective thresholds. As noted above, the frame packet 502 is comprised of a number of fields. The operations performed by the word resynchronization subsystem 404 depend in part upon which field ofthe frame packet 502 is presented at the input to the data FIFO 402. This is determined by counter 608. Counter 608 monitors the data input presented to the data FIFO 402 via the monitor line 412. Upon receipt ofthe frame synchronization field 504, the counter 608 begins to count the number of words received by the data FIFO 402. When the counter 608 reaches a predetermined value indicating that the field ofthe frame packet 502 that is currently presented at the input ofthe data FIFO 402 is the dead zone field 508, the counter transmits a signal on control bus 626 instructing the write controller 602 and the read controller 604 to resynchronize. Counter 608 counts the words presented to the data FIFO 402 by resetting a timer upon receipt ofthe frame synchronization field 504 and increasing the timer in increments of time equivalent to the time it takes to receive a single word of the frame packet 502. Based upon the data level 620 as determined by the PAF and PAE flags 614,616, and the currently presented portion of frame packet 502 as determined by counter 608, data is passed through the data FIFO 402 by write controller 602 and read controller 604. Write controller 602 controls the writing of data into the data FIFO 402 via a write enable >(WEN) signal line 610. Read controller 604 controls the reading ofthe data from the data FIFO 402 via a read enable (REN) signal line 612. The operation ofthe write controller 602 and read controller 604 to maintain the data level 620 in an optimal range defined by the upper threshold 618 and lower threshold 622 are described below with reference to Figures 7 and 8. Figure 7 is a state diagram illustrating the functions performed by the write controller 602 while Figure 8 is a state diagram illustrating the functions performed by the read controller 604. Following the discussion ofthe controllers, the interoperability ofthe word resynchronization subsystem 404 components to prevent dataflow errors is discussed. Referring to Figure 7, the write controller 602 state machine 700 has three states: a reset state 702, a write suspend state 704 and a write state 706. Initially, the write controller 602 is at reset state 702. The write controller 602 may be reset for any number of reasons, such as upon receipt of power, when the data FIFO 402 is cleared, when the nodes are initialized prior to commencing communications over the network, etc. At reset state 702, write controller 602 sets the write enable (WEN) control line 610 inactive to prevent the writing of data into the data FIFO 402 until the necessary conditions are present. Upon completion of these initialization procedures, write controller 602 advances to write suspend state 704 as shown by state transition line 708. While the write controller 602 is at write suspend state 704, it maintains the WEN control line 610 inactive while it monitors the state ofthe PAF flag 614 and the portion ofthe frame packet 502 that is currently presented to the data FIFO 402. If the PAF flag 614 is active, then the data level 620 is above the upper threshold 618 as discussed above. Under such conditions, the write controller 602 continues to remain in the write suspend state 704 unless a frame packet is received. .Alternatively, the write controller 602 will advance to the write state 706 when the data level 620 in the data FIFO 402 is below the upper threshold 618. When the data level 620 is below the upper threshold 618 and the PAF flag 614 is inactive, the write controller 602 will allow data to be written into the data FIFO 402. Thus, when a frame packet is presented at the input ofthe data FIFO 402 or when the data FIFO 402 is not almost full, then the write controller 602 advances to write state 706 as shown by state transition line 710. At write state 706, write controller 602 sets the write enable line 610 active to begin writing the data into the data FIFO 402. The writing of data continues until two conditions simultaneously occur. If the counter 608 indicates that the dead zone field 508 is currently presented at the input to the data Fff O 402, then the payload field 506 has been completely written into the FIFO. If this occurs when the data level 620 is in the optimal range ofthe data FIFO 402, the writing of data is not suspended, and the next data block will be written into the data FIFO 402 upon arrival. However, if the counter 608 indicates that the dead zone field 508 is currently presented at the input to the data FIFO 402 and the data level 620 rises above the upper threshold 618 and is thus above the desired optimal range in the data FIFO 402, the writing of data is suspended. Thus, if the payload field 506 ofthe current frame of data is completely written into the FIFO 402 and the FIFO become almost full, the write controller 602 advances to the write suspend state 704 as shown by state transition line 712. Referring now to Figure 8, the read controller 604 state machine 800 has three states: a reset state 802, a read suspend state 804 and a read state 806. Initially, the read controller 604 is at reset state 802. Read controller 604 may be reset for any number of reasons such as those discussed above with respect to write controller reset state 702. At reset state 802, the read controller 604 sets the read enable (REN) control line 612 inactive to prevent the reading of data from the data FIFO 402 until the necessary conditions are present. Upon completion ofthe reset/initialization procedures, read controller 604 advances to read suspend state 804 as shown by state transition line 808. While the read controller 604 is at the read suspend state 804, it maintains the REN control line 812 inactive while it monitors the state ofthe PAE flag 616 and the portion ofthe frame packet 502 that is currently presented to the data FIFO 402. If the PAE flag 616 is active, then the data level 620 is below the lower threshold 622 as discussed above. Under such conditions, the read controller 604 continues to remain in read suspend state 804 unless a frame packet is received or the data level 620 rises above the lower threshold 622. When the data level 620 does rise above the lower threshold 622, the read controller 604 allows data to be read from the data FIFO 402. Thus, when a new frame packet is presented at the input ofthe data FIFO 402 or when the data level 620 is not almost empty, then the read controller 604 advances to read state 806 as shown by state transition line 810. At the read state 806, the read controller 604 sets the REN control signal 612 active to enable reads to occur from data FIFO 402. The reading of data from the data FIFO 402 continues until two conditions occur. When the counter 608 indicates that the dead zone field 508 is currently presented at the input to the data FIFO 402 (the payload field 506 has been completely written into the FIFO) or the data level 620 is in the optimal range ofthe data FIFO 402, the reading of data is not suspended, and the data will continue to be read from the data FIFO 402. However, if the counter 608 indicates that the dead zone field 508 is currently presented at the input to the data FIFO 402 and the data level 620 is simultaneously below the lower threshold 622 (and is thus below the desired optimal range), the reading of data is suspended. Thus, if the payload field 506 ofthe currently-presented frame packet is completely written into the FIFO 402 and the FIFO 402 has become almost empty, the read controller 602 advances to the read suspend state 804 as shown by state transition line 812. The write and read controllers 602,604 interoperate to maintain the data level 620 ofthe data FIFO 402 at the optimal level between the upper threshold 618 and the lower threshold 622. As noted above, the write and read controllers 602,604 perform their functions in response to an internally-generated synchronization instruction based upon the state ofthe PAF and PAE flags 614,616 and the portion of the frame packet 502 currently presented at the input ofthe data FIFO 402. Upon receipt ofthe frame synchronization field 504, the counter 608 begins counting the data words following the frame synchronization field 504, i.e., the words in the payload field 506. When the counter 608 reaches a predetermined number of words representing the beginning ofthe dead zone field 508, the write and read controllers 602,604 check the status ofthe PAE and PAF flags. If a subsequent frame packet is not received by the implementing node, the counter 608 continues to reset and increment, each time generating a resynchronization instruction causing the word resynchronization subsystem 404 to periodically resynchronize. In other words, the counter 608 begins incrementing when a frame synchronization field 504 is received and then upon reaching its maximum value, the counter 608 resets and begins again in anticipation of receiving another frame synchronization field 504. Thus, resynchronization is guaranteed to occur regardless of whether a frame synchronization field 504 is received, ensuring that the FIFO level 620 is maintained at the desired level regardless or whether the frame packets that are received contain valid data. If during resynchronization, the write and read controllers 602,604 determine that the data level 620 is between the upper and lower thresholds 618,622 ofthe data FIFO 402, then the controllers 602,604 will allow the continuous reading and writing of data through the data FIFO 402 However, if the data level 420 is either below the PAF 614 or above the PAE 616 then the read and write controllers 602,604 will momentarily suspend the reading and/or writing of data as needed to maintain the data level 420 within the desired optimal range. Upon initialization or the invocation of a reset condition, the write and read controllers 402,404 are in reset states 702,802, respectively. As noted above, the controllers may be reset or initialized for any number of well known reasons. While the controllers are in their respective reset states, initializer 606 sets the values ofthe upper threshold 618 and lower threshold 622 at respective predetermined values to define an optimal range for data level 620. By using these thresholds, the preferred optimal range in the data FIFO 402 can be set prior to valid data being presented at the input ofthe data FIFO 402. It is essential that the data level 420 is increased to within this optimal range before valid data is received to avoid the immediate slippage of words. It is noted that during periods when no nodes are transmitting onto the network, the master node generates what is referred to as fill frames (frame packets having a payload field 506 that contains no valid data) that are received and stored by all the nodes in the network implementing the word resynchronization subsystem 404 ofthe present invention. Thus, although no valid data is received, the fill frames are nonetheless stored in the data FIFO 402 and the word resynchronization system is periodically invoked, thereby maintaining the data level 620 in the data FIFO 402 in the optimal range prior to the receipt of frame packets containing valid data (i.e., prior to normal communications). Once initialization is complete, the write and read controllers 604,606 advance from their reset states 702,802 to their respective suspend states 704,804. The counter 608 begins to count upon receipt of a frame packet, the initial ones of which are generated by the master node 102a and contain fill frames. The write controller 602 immediately advances to the write state 706 since a frame packet 502 has been received (containing no valid data) and the data FIFO 402 is below the lower threshold 622. In this state, write controller 602 sets WEN control line 610 active to enable writes to occur. While this is occurring, the read controller 604 remains in the read suspend state 804. As the data in payload field 506 is written into the data FIFO 402, the data level 620 eventually rises above lower threshold 622, causing the PAE flag 616 to transition to its inactive state. When this occurs, the read controller 804 transitions from read suspend state 804 to read state 806. The read controller 604 then sets the REN control line 612 active to enable the data stored in the data FIFO 402 to be read out ofthe FIFO onto data output line 403. Thus, while write controller 602 and read controller 604 are in their respective write and read states, the data level 620 will remain between the upper threshold 618 and lower threshold 622, fluctuating according to the difference in the phase ofthe source and destination node clocks. When the data level 620 decreases below the lower threshold 622 and the associated PAE flag 616 become active, the write and read controllers 602,604 operate together to return the data level 620 to within the optimal range between the two thresholds 618,622. To increase the depth ofthe data FIFO 402, read controller 604 progresses from the read state 806 to the read suspend state 804 wherein the REN control signal 612 is set to its inactive state, thereby stopping data reads from data FIFO 402 from occurring. However, the inactive state ofthe PAE flag 616 does not affect the write controller 602, which remains in write state 706. Thus, in the writes to data FIFO 402 continue to occur. Once the data level 620 increases above the lower threshold 622, the PAE flag 616 becomes inactive and the read controller 604 again enters read state 806, wherein data reads are performed. The same interoperability occurs between the controllers 602, 604 to prevent the data level 620 from exceeding and remaining above the upper threshold 618, which needlessly contributes to ring latency. As noted, the data level 620 will rise above the upper threshold 618 due to, for example, drift between the source and destination node clocks. When the data level 620 increases beyond the upper threshold 618, the PAF flag 614 transitions to its active state, and the controllers work together to return the data level 620 to the optimum range between the two thresholds 618,622. The occurrence ofthe PAF flag transitioning to its active state where the write controller 602 is in write state 706, causes the write controller 602 to transition to write suspend state 704. Thus, to decrease the depth ofthe data FIFO 402, write controller 602 transitions from write state 706 to write suspend state 704, thereby suspending the data writes into data FIFO 402. However, the status ofthe PAF flag 614 is not considered by the read controller 604, which therefore remains in read state 606. Accordingly, reads continue to occur from data FIFO 402 while the writes are suspended, thereby reducing the data level 620 in the data FIFO 402. Note however that the write controller 602 will not transition from write state 706 to write suspend state 704 unless the dead zone field 508 ofthe frame packet 502 is present at the input ofthe data FIFO 402. This prevents the loss of valid data while the writes to the data FIFO 402 are suspended. Thus, the present invention temporarily sacrifices thruput time to guarantee the successful receipt of payload field 506 Once the data level 620 decreases past the upper threshold 618 and the PAF flag 614 becomes inactive, the write controller 604 transitions to write state 706 wherein writes are once again performed. The optimal data level 620 is based upon the expected deviations between the source and destination node clocks in the network. In the preferred embodiment ofthe present invention, each node has a local oscillator which operates at 131.072 MHz ± 25 ppm (parts per million). The local clock of each node is configured to operate at half the oscillator rate. Thus, the tolerance of each node in the network is 1638 words/second (131.072 ÷ 2 x 25 = 1638). In other words, variations in the source and destination oscillators cause corresponding variations in data transmission by as much as 1638 words per second. The largest difference between two nodes on the network will occur when the oscillator at one node is running at 131.072 + 25 ppm is communicating with a node having a oscillator running at 131.072 - 25 ppm. This worst case scenario will result in an error condition of 2 x 1638 or 3276 words per second. Hence, a slip of one word can be expected every 305.25μs. Note however, that in addition to instructing the controllers to resynchronize upon receipt ofthe dead zone, the counter 608 also instructs the write and read controllers to resynchronize when no frame synchronization field 504 is received at all. That is, the counter 608 continually resets and increments its 125μs timer regardless of whether a frame synchronization field 504 appears at the input ofthe data FIFO 402. When the counter 608 resets upon completion ofthe 125μs timer, it instructs the write and read controllers to resynchronize the node and perform the above operations to maintain the data level 620 between the upper and lower threshold levels 618 and 622. This periodic resynchronization continues indefinitely and is interrupted only when a frame synchronization field 504 is received. Thus, the longest period of time between resynchronizations is when a frame synchronization field 504 is received immediately prior to the timer resetting. For example, if the dead zone field 508 is 100 words in length, then the timer will reset at 118.5 μs ((8000-100 words) x 15 nanoseconds), with the longest duration between resynchronizations being 237 μs (118.5 x 2). Thus, word resynchronization is generally performed every frame, or once every 125 μs, with anticipated extended periods of up to 250μs. Since these interv^s are less than 305μs, no word slips will occur. As a result, an optimal data FIFO level 620 may be only a few words. In the preferred embodiment, the upper threshold 618 and the lower threshold 622 are determined based upon how often the data FIFO 402 is going to be serviced by the controllers, the anticipated inaccuracies in the source and destination clocks, the hysteric behavior ofthe subsystem, as well as the data FIFO's sensitivity to underflow and overflow conditions. However, as one skilled in the relevant art would find apparent, other criteria may also be considered. In the preferred embodiment, the data FIFO 402 is significantly larger than the upper threshold 618, to the provided protection against overflow conditions. However, if the data FIFO level becomes too large, there will be significant delay through the node. Thus, the present invention maintains the data level 620 within the optimal range to prevent such delays. Although it is desirable to maintain the data level 620 as low as possible to reduce the delay through the node, to provide protection against underflow conditions there must be a data level sufficient to prevent loss of data in light ofthe above factors. These concerns are balanced against ring latency requirements to obtain an optimal range for data level 620. In the preferred embodiment, the optimal data level 620 is set at an 8 word depth, with the associated upper and lower thresholds 618,620 set at 8 and 12 words, respectively. A data FIFO level of 8 words will not cause significant delay through the node (8 x 15ns = 120ns), while providing a conservative number of words to prevent slippage (despite the fact that none will occur given the above calculation). Note that the data writes are suspended only during the receipt ofthe dead zone field 508 when only fill frames (non-valid data) are received. As a result, some, all, or none ofthe dead zone field 508 will be stored in the data FIFO 402. The portion that is stored is the amount necessary to guarantee that the transmitted frame packet read from the data FIFO 402 at the rate ofthe local clock will be exactly 125μs in length. Furthermore, the clock signal transmitted to another node will not contain jitter or wander components ofthe recovered source node's clock. 3. Frame Synchronization Subsystem The frame synchronization subsystem 406 ofthe present invention is a novel synchronization system for use in a designated master node of an asynchronous network system. The subsystem 406 continually monitors and controls the flow of data through an implementing network node so as to guarantee that the time for a frame packet to traverse the network is equivalent to an integer number of frame packets, thereby ensuring that new frame packets will arrive at each non-master node every 125μs. Specifically, the frame synchronization subsystem 406 manages the flow of data through the data FIFO 402, storing up to one frame packet at the source node clock rate (recovered ring clock 322). Rather than retransmitting the frame packet at the rate at which the frame packet is received, the subsystem 406 buffers portions ofthe frame packet, retransmitting it based upon a local frame synchronization pulse 324 derived from the network reference clock provided to the master node 102a. The local frame synchronization pulse 324 is generated by the clock processor 334 at a predetermined network frame transmission rate. By delaying the transmission ofthe frame packet until the occurrence ofthe local frame synchronization pulse 324, the subsystem 406 guarantees that the delay to traverse the ring is equivalent to an integer number of frame packets, and that every frame packet received by each node will be received at 125μs intervals regardless ofthe extent of ring latency. In addition to releasing the frame packet 502 at predetermined intervals, the subsystem 406 must guarantee that the frame packet has a length corresponding to a single frame transmission in order to maintain frame synchronization. If one of a series of sequentially-transmitted frames has more words than can be transmitted in a single frame transmission, then subsequentially-transmitted frame packets will be received by the destination node at unanticipated times rather than at 125μs intervals. To accomplish this, the frame synchronization subsystem 406 uniquely buffers only the payload field 506 and frame synchronization field 504 of a received frame packet 502, discarding the dead zone field 508, which may have expanded or contracted (words added or lost) as result of being subjected to timing inaccuracies in the network. This results in the storage of fewer than the maximum words that a frame packet can contain, ensuring that a frame synchronization field is always present at the output of the data FIFO when a local frame synchronization pulse 324 occurs. This eliminates the problems associated with the extending or contracting ofthe frame packet length due to timing inaccuracies in the network. For example, if the dead zone field is extended when a packet returns to the master node, then there will be no frame synchronization word at the FIFO output when a local frame synchronization pulse occurs, resulting in no frame packet being transmitted. Thus, the present invention guarantees that the fields 504,506 are stored in the data FIFO 402 and are available upon the occurrence ofthe local frame synchronization pulse 324. Upon transmission, the frame synchronization subsystem 406 reads the fields 504, 506 from the data FIFO 402 and, by stopping the reads after the payload field 506, effectively creates a new dead zone field 508 of non-valid data (i.e., fill frames) having a length such that the assembled frame packet 502 contains the exact number of words necessary to fill a complete frame transmission. This resulting frame packet is created and released at the occurrence of a subsequent local frame synchronization pulse 324. Referring to Figures 9-11, the novel frame synchronization subsystem 406 of the present invention is described below. Figure 9 is a functional block diagram ofthe frame synchronization subsystem 406 and data FIFO 402 ofthe distributed synchronization system 310 ofthe present invention. The frame synchronization subsystem 406 generally includes an input or write controller 902, an output or read controller 904, an initializer 906, and a counter 908. The write controller 902 and read controller 904 asychronously control the flow of data through data FIFO 402 in response to the data level 920 ofthe FIFO, the frame packet field ofthe received frame packet 901 that is currently presented at the input and output of data FIFO 402, and the occurrence ofthe local frame synchronization pulse 324. More specifically, controllers 902,904 buffer portion ofthe received frame packet 901 in the data FIFO 402 until the occurrence of a subsequent frame cycle while maintaining the optimal number of words in the data FIFO 402 to avoid unnecessary delay through the master node 102a as well as to avoid underflow conditions from arising. The lower threshold level 922 is represented by a synchronization programmable almost empty (SYNCPAE) flag 916; i.e., the SYNCPAE flag 916 indicates the level of data in the FIFO 402 relative to the associated lower threshold level 922. When the data level 920 is at or below the lower threshold 922, the SYNCPAE flag 916 is in its active state. Conversely, when the data level 920 is above the lower threshold 922, the SYNCPAE flag is in its inactive state. The SYNCPAE flag 916 is initially set by an initializer 906 via initialization control line 928 to a predetermined level (discussed below). The read controller 904 also receives the local frame synchronization pulse 324 generated in the master node 102a as described above, and an indication ofthe portion ofthe frame packet presented at the output ofthe data FIFO 402 through monitor line 414. The determination of which field ofthe frame packet 901 is presented at the FIFO input is made by a counter 908 that monitors the input of data FIFO 402 via the monitor line 412. When the counter detects a frame synchronization field 903, it counts up to the dead zone field 907 where upon invokes a self-synchronization command to the write controller 902 to begin or suspend write operations. When the counter 908 does not detect a frame synchronization field 903 (and thus a dead zone field 907 as well) during a the frame transmission, the counter invokes a self- synchronization command to the write controller 902. Based upon the frame packet field and the invocation of self-synchronization, the counter 908 generates a signal on control bus 926 instructing the write controller 902 to write or not write the received fields into the data FIFO 402. Based upon the above, frame packet fields are passed through the data FIFO 402 by write controller 902 and read controller 904. Write controller 902 controls the writing of data into the data FIFO 402 via a write enable (WEN) signal line 910. Read controller 904 controls the reading ofthe data from the data FIFO 402 via a read enable (REN) signal line 912. When the REN and WEN control lines are active, the data FIFO 402 is enabled to read and write data, respectively. The frame synchronization subsystem 406 dynamically adjusts the amount of data stored in the data FIFO 402 to accommodate variations in ring latency. If the ring latency is increased suddenly due to, for example, a node failure and subsequent loop- back operations, then the data FIFO 402 will be depleted by the number of missed dead zone flows. However, the frame synchronization subsystem 402 automatically recovers because the next frame synchronization field 903 that appears at the output of the data FIFO 402 does so significantly before the occurrence ofthe local frame synchronization pulse 324. As a result, reads are suspended while the data FIFO 402 is filled with data, thereby automatically raising the data level ofthe FIFO by the amount that it was previously depleted. The operation ofthe write controller 902 and read controller 904 to maintain the flow of data through the data FIFO 402 are described below with reference to Figures 10 and 11. Figure 10 is a state diagram illustrating the functions performed by the write controller 902 while Figure 11 is a state diagram illustrating the functions performed by the read controller 904. Following the discussion ofthe individual controllers, the interoperability ofthe components ofthe frame synchronization subsystem 406 to maintain frame synchronization in an asynchronous, distributed network system is discussed. Referring to Figure 10, the write controller 902 state machine 1000 has three states: a reset state 1002, a write suspend state 1004, and a write state 1006. Initially, the write controller 902 is at reset state 1002. The write controller 902 may be reset for any number of reasons, such as when the initializer 906 sets the lower threshold level 922, upon the initial application or an interruption of power to the frame synchronization subsystem 406, etc. At the reset state 1002, write controller 902 sets the write enable (WEN) control line 910 inactive to prevent the writing of data into the data FIFO 402 until the necessary conditions are present. Upon completion ofthe initialization procedures, write controller 902 advances to the write suspend state 1004 as shown by state transition line 1012. While the write controller 902 is at the write suspend state 1004, it maintains the WEN control line 910 inactive to prevent writes from occurring. During this time, the counter 908 monitors the input into the data FIFO 402 via counter 908 to determine which portion ofthe frame packet 901 is currently presented to the data FIFO 402. When the frame packet 901 is received or when the counter 908 does not detect a frame packet during a frame transmission, it invokes a self-synchronization operation, instructing the write controller 902 to begin writing data into the data FIFO 402. When this occurs, the write controller 902 transitions from the write suspend state 1004 to the write state 1006 as shown by state transition line 1014. At write state 1006, write controller 902 sets the WEN control line 910 active to begin writing the contents of any received frame packets into the data FIFO 402. The writing ofthe frame packet fields continues until the counter 908 indicates that the dead zone field 907 is currently presented at the input to the data FIFO 402. As noted above, this indicates that the payload field 905 has been completely written into the FIFO 402 and that the portion ofthe frame packet 901 dedicated to synchronization (i.e., the dead zone field 907) is now available. On the other hand, if the counter 908 did not detect a frame packet at the input ofthe FIFO during a frame transmission, then the write controller 902 will be writing fill frames into the data FIFO 402 while in write state 1006. In this circumstance, the counter 908 will still indicate the point at which a dead zone 907 would have appeared at the input ofthe data FIFO 402. In other words, regardless of whether a frame packet or fill frames are being written into the data FIFO 402, the write controller 902 will transition to the write suspend state 1004 during a portion ofthe frame transmission. Thus, when the dead zone field 907 ofthe current frame packet 901 is presented to the data FIFO 402 or when a periodic self-synchronization is to occur, the write controller 902 advances to the write suspend state 1004 as shown by state transition line 1010. As a result, the write controller 902 writes only the frame synchronization and payload fields (and not the dead zone field) into the data FIFO 402. If no frame packet is presented to the data FIFO 402, then the write controller 902 periodically transitions between the write state 1004 wherein it operates the FIFO at an optimal minimal level, and the write suspend state 1006, wherein the data FIFO 402 is depleted by the number of words equivalent to the dead zone. Referring to Figure 11, the read controller state machine 1100 has three states: a reset state 1102, a read state 1104; and a read suspend state 1106. Initially, the read controller 904 is at reset state 1102. Read controller 904 may be reset for any number of reasons such as those discussed above with respect to the write controller reset state 1002. At the reset state 1102, the read controller 904 sets the read enable (REN) control line 912 inactive to prevent the reading of data from the data FIFO 402 until the necessary conditions are present. Upon completion ofthe initialization procedures, read controller 904 advances to read state 1104 as shown by state transition line 1112. While the read controller 904 is at the read state 1104, it sets the REN control line 912 active while it monitors the output ofthe data FIFO 402. This will maintain the data FIFO 402 at an optimal minimal level, somewhere close to empty, until a frame packet has been received and stored in the FIFO. When the read controller 904 determines that the a frame synchronization field 903 is about to be read from the data FIFO 402, the read controller 904 advances to the read suspend state 1106 as shown by state transition line 1114. In the read suspend state 1106, the read controller 904 sets the REN control line 912 inactive to stop the reads from the data FIFO 402 from continuing. The read controller 904 then waits until the simultaneous occurrence of two conditions: the receipt ofthe local frame synchronization pulse 324 and the accumulation of data in the FIFO 402 such that the data level 920 is above the lower threshold 922. If the local frame synchronization pulse 324 occurs and the data FIFO 402 is not almost empty, then there is a sufficient amount of data in the data FIFO 402 to safely perform reads without causing underflow conditions. When the data level 920 is below the lower threshold 922, the read controller 904 remains in the read suspend state 1106. On the other hand, when the data level 920 is above the lower threshold 922, the read controller 904 will allow data to be read from the data FIFO 402 upon receipt of a local frame synchronization pulse 324. This prevents underflow conditions (i.e., slippages resulting in the loss of data) from occurring. Thus, when a new frame packet 911 is presented at the output ofthe data FIFO 402 and the data level 920 is not almost empty, then the read controller 904 advances to read state 1106 as shown by state transition line 1110. If a local frame synchronization pulse 324 occurs prior to the data FIFO 402 filling up with data beyond the lower threshold 922, the read controller 904 will remain in the read suspend state 1106 and continue to accumulate data until the next occurrence ofthe local frame synchronization pulse 324. Thus, when a the local frame synchronization pulse 324 occurs and the data level 920 is beyond the lower threshold 922, the read controller 904 transitions to the read state 1104, releasing the frame synchronization field 903 and the data in the payload field 905. When the next frame synchronization field appears at the output ofthe data FIFO 402, the read controller will return to the read suspend state 1106 until the next local frame synchronization pulse 324 occurs. The write and read controllers 902,904 perform their functions asychronously with respect to each other. However, their functions are coordinated to ensure that a frame packet is released from the implementing master node 102a thereby extending the ring latency to an integer multiple of frame packets. The write and read controllers 902, 904 maintain an optimal amount of frame packet fields in the data FIFO 402 so that a frame packet is ready for transmission upon the occurrence of a pulse while not causing excessive delay through the master node or exposing the node to potential underflow conditions. This coordinated operation ofthe write and read controllers is discussed below. As noted, the master node 102a implementing the frame synchronization subsystem 406, generates an initialization frame when the network in first initialized. Each non-master node receives and retransmits the initialization frame, causing the nodes to successively initialize their nodal switch. When the initialization frame returns to the master node, the master node itself then initializes with the knowledge that all other nodes in the network are ready to commerce inter-nodal communications. The master node then transmits a frame synchronization field designating the frame boundaries around the ring. When the write and read controllers 902,904 are in their respective reset states, the WEN and REN control lines 910, 912 are set inactive to prevent any data from being stored in, or retrieved from, the data FIFO 402. After initialization, write controller 902 advances to the write suppression state 1004 and the read controller 904 advances to the read state 1104. No data is written into the data FIFO 402 until either a frame synchronization field 903 is detected at the input ofthe data FIFO 402 or a self-synchronization event occurs. However data is read from the data FIFO 402, although no valid data will be presented at the output ofthe FIFO. If a frame synchronization field 903 is not detected within a predetermined time equivalent to a frame transmission (i.e., 125μs), then the counter 908 indicates that a self-synchronization event is to occur. This causes the write controller 902 to advance to the write state 1006, while the read controller 904 remains in the read state 1104. Thus, any data received by the master node 102a will be written into and read from the data FIFO 402 with little or no delay through the node since the data FIFO will be essentially empty. Since the write controller 902 and the read controller 904 operate asynchronously, the data level 920 in the data FIFO 402 may drift upward. To avoid having an unnecessary number of fill frames in the data FIFO 402 when a frame packet of valid data is received, the write controller 902 periodically ceases writes operations while the read controller 904 continues read operations. That is, if a frame synchronization field 903 is not detected while the write controller 902 is in the write state 1006 and the counter 908 is incrementing, then the write controller 902 transitions to the write suppression state 1004, allowing the read controller 904 to operate to deplete the data FIFO 402 during the time that the dead zone field 907 is presented to the data FIFO 402. The write controller 902 will transition between these two states indefinitely until a frame synchronization field 903 is received. Upon receipt of a frame synchronization field 903, the counter 908 will reset and begin to count the number of words written into the data FIFO 402. The write controller will either remain in the write state 1006 or transition to the write state 1006 from the write suspend state 1004. When the counter 908 reaches a predetermined value indicating that the frame synchronization field 903 and the payload field 905 have been written into the data FIFO 402 and that the dead zone field 907 is currently presented at the input ofthe data FIFO 402, then the counter 908 instructs the write controller 902 to cease writing the received frame packet 901 into the data FIFO 402 since the received dead zone field 907 is not retransmitted by the subsystem 406. When the frame synchronization word 903 is presented to the output ofthe data FIFO 402, the read controller 904 advances to the read suspend state 1106, causing the data FIFO 402 to start filing up. Upon the occurrence of a local frame synchronization pulse 324, the read controller 904 reads the frame synchronization field 903 and the payload field 905 from the data FIFO 402. The read controller 904 continues to read data from the FIFO until it detects a new frame synchronization field 903 presented at the output ofthe data FIFO 402. When this occurs, the read controller ceases to read from the FIFO, causing fill frames (i.e., data words that contain no valid data) to be added to the frame packet until it contains a sufficient number of words equivalent to a frame transmission. Thus, a new dead zone 909 is effectively created by the ceasing of read operations. This guarantees that each frame packet 911 transmitted from the master node 102a contains an exact number of words for a frame transmission. When a local frame synchronization pulse 324 occurs and the SYNCPAE flag is inactive, the read controller 904 transitions to the read state 1104 and releases the frame synchronization field 903 and the payload field 905. When the next frame synchronization field 903 appears at the output ofthe data FIFO 402, the read controller 904 transitions back to the read suspend state 1106 until the occurrence of the next local frame synchronization pulse 324. Since the write controller 902 does not write (i.e., discards) the dead zone field 907 while the read controller 904 is performing read operations, the data FIFO 402 will be depleted by an amount of words approximately equivalent to the size ofthe dead zone field 907. Likewise, when the read controller 904 is in a read suspend state 1106 while write controller 902 is in the write state 1006, the data level in the FIFO will increase by the size ofthe dead zone field 907. Thus, to avoid dataflow errors from occurring, the data FIFO 402 must be maintained with a number of words equivalent to at least the number of words contained in dead zone field 907. An additional requirement is that the data FIFO 402 must contain a quantity of data, referred to as the "remainder", that is equivalent to the difference between the ring latency and an integer multiple ofthe frame. If the remainder is less than the size ofthe dead zone field 907, then the remainder plus a complete frame of data (payload field 905 and frame synchronization field 903) is stored in the FIFO since the data level 920 will be below the lower threshold 922 when a pulse 324 occurs, causing the read controller 904 to stay in the read suspend state 1106 until a following pulse 324 after another frame of data has been written into the FIFO. On the other hand, if the remainder is greater than the size ofthe dead zone field 907, then only the remainder will be stored in the data FIFO since the remainder number of words in the FIFO 402 will always be above the lower threshold 922 set at the size ofthe dead zone field 907. As a result, the SYNCPAE flag 916 will never go active once a frame packet has been received. In the preferred embodiment ofthe present invention, the distributed synchronization system 326 comprises both, a frame synchronization subsystem 406 operating in the master node and a word resynchronization subsystem 404 implemented in each non-master node. However, as one skilled in the relevant art would find apparent, the distributed synchronization system 326 may be implemented with either the frame synchronization subsystem 406 or the word resynchronization subsystem 404 individually. It is noted, however, that network implementing both subsystems enables the continued robust synchronized communications to occur between asynchronous nodes in the network while preventing dataflow error s and without contributing to network latency. As a result, in the preferred embodiment ofthe present invention, each network node is implemented with both subsystem. Accordingly, the size of FIFO 402 is preferably large enough to accommodate both of these implementations. Thus, FIFO 402 has a 16K byte capacity. This will provide the implementing node with the capacity of being the master node and perform frame synchronization. Alternatively, the node may be a non-master node, performing solely word resynchronization. Furthermore, if such a node is implemented in a network system that is not distributed, frame synchronization is not required, thereby enabling the FIFO 402 to be considerably smaller. In non-distributed systems wherein the total propagation around the ring is restricted to approximately 15 microseconds, and thus there will only be a single frame of data on the ring at any given time. While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope ofthe invention. Furthermore, the terms and expressions which have been employed are used as terms of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding any equivalents ofthe features shown and described or portions thereof, but it is recognized that various modifications are possible within the scope ofthe invention claimed

Claims: CLAIMS 1. A synchronization system for use in a node of an expandable telecommunications system, comprising: a synchronization data memory implemented in a master node and each non-master node for storing predetermined portions of an inbound frame packet received from a source node and from which information is retransmitted to a destination node on the network; a frame synchronization subsystem implemented in the master node, and connected in communicating relationship with said memory, configured to release an outbound frame packet at the beginning of an independently- determined frame cycle; and a word resynchronization subsystem implemented in said master node and each non-master node and connected in communicating relationship with said memory and configured to control storage of said predetermined portions using a recovered source node clock signal and to control retransmission of said information according to a local clock signal, wherein said frame packets include a frame synchronization field indicating the beginning of a new frame packet; a payload field containing valid data; and a non-valid data field providing bandwidth during which the synchronization system performs synchronization functions. 2. The synchronization system of claim 1 wherein the frame synchronization subsystem comprises: a counter for generating a signal indicative of which portion ofthe inbound frame packet is present at an input to said memory; an initializer connected to said memory for establishing a threshold data level of said memory; a read controller connected to said memory and responsive to a signal indicative of whether a current data level of said memory is greater than said threshold data level to alternately enable or suspend reading of information from said memory, a master clock signal for reading information from said memory for inclusion in said outbound frame packet, and a frame synchronization pulse which is derived from a network reference clock and is used to trigger the release of said outbound frame packet; a write controller connected to said memory and responsive to said recovered source node clock signal to alternately enable or suspend writing of information into said memory; said counter, initializer and read and write controllers connected in communicating relationships by a control bus. 3. The synchronization system of claim 1 wherein the word resynchronization subsystem further comprises: a counter for counting the number of words written into the data memory following receipt of said frame synchronization field and resetting a timer, for generating a signal indicative of which portion ofthe inbound frame packet is present at an input to said memory, and to instruct a read controller and a write controller to resynchronize when the counter reaches a predetermined value corresponding to the presence of said non-valid data field at said memory input; an initializer connected to said memory for establishing upper and lower threshold data levels of said memory; said read controller connected to said memory and responsive to a signal indicative of whether a current data level of said memory is greater than said lower threshold data level, and a master clock signal for controlling the reading of information from said memory; said write controller connected to said memory and responsive to a signal indicative of whether a current data level of said memory is less than said upper threshold level, and a recovered source node clock signal for controlling the writing of information into said memory; wherein said read and write controllers function in cooperating relationship to maintain the data level of said memory within an optimal range between said upper and lower threshold levels; said counter, initializer and read and write controllers are connected in communicating relationships by a control bus. 4. The sychronization system of claim 3 wherein said read and write controllers function to substantially compensate for phase differences between said recovered source node clock signal and said local clock signal by receiving and storing data in accordance with said recovered source node clock signal and retrieving and retransmitting the data in accordance with said local clock signal. 5. A telecommunications switch which is operable as a node in an expandable telecommunications system, said switch comprising: one or more nodal switches for dynamically connecting or disconnecting communication paths with respect to various ones of a plurality of ports and transmitting and receiving packetized information over an inter-nodal network, said inter-nodal network for providing communications between said telecommunications switch and other nodes associated with said system; and a word resynchronization subsystem including a memory and a controller, wherein said memory is implemented in a master node and each non-master node for storing predetermined portions of an inbound frame packet received from a source node and from which information for inclusion in an outbound frame packet is retrieved, and said controller for regulating the flow of information through said memory in response to a time-varying data level ofthe memory, and maintaining said data level within a predetermined optimal range. 6. A method of synchronizing data in a node of an expandable telecommunications system, said method comprising the steps of: (a) at a master node, transmitting a first frame packet at the beginning of an independently-determined frame cycle, wherein said first frame packet comprises: a frame synchronization field indicating the beginning of said first frame packet, a payload field containing valid data, and a non-valid data field providing a bandwidth for performing synchronization functions; (b) at a first non-master node storing in a memory predetermined portions of said first frame packet, and retrieving from said memory information which is to be retransmitted to another non-master node or the master node node on the network; (c) repeating step (b) at each non-master node until said first frame packet returns to said master node.

Inventors: ESCHHOLZ SIEGMAR K, ESCHHOLZ, SIEGMAR, K.
Applicants: EXCEL IND, EXCEL, INC.
Application year: 1997
Main classification: H04L12
IPC codes: H04J3, H04L7, H04L12