WO1997039556A1 - Media access control for isochronous data packets in carrier sensing multiple access systems - Google Patents

Media access control for isochronous data packets in carrier sensing multiple access systems Download PDF

Info

Publication number
WO1997039556A1
WO1997039556A1 PCT/US1997/005962 US9705962W WO9739556A1 WO 1997039556 A1 WO1997039556 A1 WO 1997039556A1 US 9705962 W US9705962 W US 9705962W WO 9739556 A1 WO9739556 A1 WO 9739556A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
transmission
station
timer
data packets
Prior art date
Application number
PCT/US1997/005962
Other languages
French (fr)
Inventor
Kevin Paul Gross
Charles William Anderson
Derek Wearin Lieb
Gerrit Eimbertus Rosenboom
William Warren Lowe
Original Assignee
Peak Audio, Incorporated
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 Peak Audio, Incorporated filed Critical Peak Audio, Incorporated
Priority to AU24533/97A priority Critical patent/AU2453397A/en
Priority to EP97920307A priority patent/EP0832530A1/en
Publication of WO1997039556A1 publication Critical patent/WO1997039556A1/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/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • H04L12/4035Bus networks with centralised control, e.g. polling in which slots of a TDMA packet structure are assigned based on a contention resolution carried out at a master unit
    • 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/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master
    • 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/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • 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/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • H04L2012/5609Topology
    • H04L2012/5612Ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5672Multiplexing, e.g. coding, scrambling
    • H04L2012/5675Timeslot assignment, e.g. TDMA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6445Admission control
    • H04L2012/6448Medium Access Control [MAC]

Definitions

  • This invention relates to a media access control for handling transmission and reception of isochronous data and asynchronous data More particularly, the invention relates to preventing collisions during the transmission of isochronous data in carrier sensing multiple access transmission systems
  • Audio and video are but examples of synchronous oi isochronous data Any data stream that must be clocked and continuous would be considered synchronous A data stream which must be delivered with determinant latency could be considered isochronous
  • Ethernet Local area networks, such as Ethernet, were developed to carry computer data
  • Computer data is primarily asynchronous in nature, and is not highly sensitive to non-deterministic latencies
  • Ethernet uses a earner sense multiple access with collision detection media access control protocol (CSMA/CD MAC) This type of MAC is characterized by very low typical latencies, and reasonably high potential throughput
  • a reservation system typically employs two communications channels, one channel, the reservation channel, is used to communicate reservation requests from individual stations to a central autho ⁇ ty which then allocates bandwidth in the primary channel, as requested, if possible
  • the reservation channel typically carries asynchronous data, while the primary channel carries isochronous data
  • TDM Time Division Multiplexed
  • the present invention solves the latency problem by essentially eliminating collisions for synchronous and isochronous data on an Ethernet network
  • the current invention differs from previous schemes in that it works on an unmodified Ethernet network using standard Ethernet transceivers and controllers augmented by a simple timing circuit
  • the current invention also differs from previous schemes in that the boundary between the primary and reservation regions of the frame floats allowing the relative bandwidths allocated to the primary and reservation channels to balance dynamically as traffic conditions vary in time During the reservation portion ofthe frame an "adaptive p-persistent" MAC is employed.
  • the current invention utilizes an "ordered persistent" or “o-persistent" MAC.
  • the present invention has solved the collision problems in a CSMA network protocol and at the same time optimized performance ofthe network.
  • An order persistent timer is provided in each station to control the timing of transmission of each isochronous data packet from a station and to also control the timing of transmission of asynchronous data packets that include reservation requests.
  • the OP timer at each station monitors traffic in the network from other stations to detect whether the network is active or idle. In an active state, the OP timer times a set interval of time sufficient to indicate the successful transmission of a packet on the frame. In the idle state (no packet on the network from another station), the OP timer times a number of deferral time intervals that are used with a network interrupt handler at the station to control the transmission of isochronous datajDackets without collision, and asynchronous data packets thereafter.
  • the network timing is controlled by one of the stations acting as a conductor for the network. This conductor station receives the reservation requests from the other stations and builds a beat packet.
  • the beat packet is transmitted from the conductor station to all stations ofthe network, and provides the timing or beat ofthe network that all stations are synchronized with.
  • the beat packet contains the permission list (reservation list) identifying the stations that will transmit, and when they will transmit during the frame.
  • the network interrupt handler and the conductor at the conductor station build this beat packet.
  • Each station also has a frame interrupt handler that queues data from a synchronous data stream as isochronous packets in a transmit pipeline buffer awaiting transmission
  • the frame interrupt handler also unloads isochronous packets from a receive pipeline buffer, and converts them to a synchronous data stream
  • a supervisor works asynchronous pipeline buffers to load and unload asynchronous control messages transmitted as asynchronous data packets
  • the reservation requests are also transmitted as asynchronous data packets to the conductor at the conductor station from stations making reservation requests
  • the network interrupt handler will maximize the transmission of isochronous data packets Space in the communication frame is given first to isochronous data packets Thereafter, remaining space is filled with asynchronous data packets until the frame is full
  • FIG 1 illustrates a network of stations where each station is implemented in accordance with the invention
  • FIG 2 A illustrates a preferred embodiment for the station hardware of the invention
  • FIG 2B shows the hardware and software elements of the preferred embodiment of the invention
  • FIG 2C shows the input/output data and signals for the Ethernet controller in FIGS 2A and 2B
  • FIG 3 shows the format of a beat packet
  • FIG 4 shows the ordered persistent timer of FIGS 2 A and 2B
  • FIG 5 composed of FIGS 5A and 5B, illustrates the flow of operations performed by the network interrupt handler in FIG 2B to handle with the Ethernet controller the transmission and reception of packets at the station
  • FIG 6 illustrates the flow of operations performed by the network interrupt handler with the OP timer to schedule transmissions and to initiate transmissions
  • FIG 7, composed of FIGS 7A and 7B shows the operations for scheduling the transmission of isochronous and asynchronous data packets
  • FIG 8 shows the format of a transmitted frame having a beat packet, isochronous data packets and asynchronous data packets
  • FIG 9 is a timing diagram for the transmission of isochronous and asynchronous data packets in a network such as FIG 1 having stations as shown in FIGS 2A and 2B
  • FIG 10 shows the logical operations performed by the frame interrupt handler working with the synchronous I/O and the isochronous data buffers
  • FIG 1 1 illustrates the logical operations performed by conductor 56 (FIG 2B) in handling an asynchronous request
  • FIG 12 illustrates additional operations performed by the frame interrupt handler in response to a timer tick event
  • FIG 13 illustrates additional operations performed by the network interrupt handler 46 dunny an OP timer event
  • each of the stations connected to network 8 is implemented in accordance with the preferred embodiment ofthe invention
  • Station #1 is the conductor for the network and generates the beat packet that provides the timing for the network and a permission list to each of the stations All stations receive the beat packet at the beginning of a frame
  • the permission list in the beat packet controls the sequence of transmission of isochronous data packets on the network by the various stations
  • This permission list of isochronous or iso channels is used to generate a deferred time of transmission for iso channels from each station
  • An iso channel is an isochronous data packet with a defined destination station, or stations, in the network
  • Each station generates a deferral value based on the position of its iso channel on the permission list
  • An ordered persistent timer in each station uses the deferral value to control the timing of transmission of an iso channel from the station
  • Each station working with the OP timer schedules transmission times for iso channels when the network is active (packet is on the network) and initiates transmission of an iso channel (an isochronous packet) on 0 (zero) deferral for the iso channel
  • FIG 2A illustrates a preferred embodiment of a station or node, hardware architecture in accordance with the invention
  • the node When the node is operating in a receive mode Ethernet packets of information are received from the communication network at the Ethernet transceiver 10 From transceiver 10, the Ethernet packets go to the Ethernet controller 12 Controller 12 buffers the packets while they are being stored for processing in the node at the static RAM 14
  • the node processor 16 When the node is operating in a transmission mode, the node processor 16 will place the packets to be transmitted into static RAM 14 When the node or station is ready to transmit the packets, they are pulled from the static RAM 14 and sent out over the network link through the Ethernet controller 12 and the Ethernet transceiver 10 Static RAM 14 is the mam working storage for node processor 16 Flash
  • RAM 18 is non-volatile storage storing the program code used by the node processor 16 and storing configuration information for the node, such as the station address
  • the ordered persistent (OP) timer 20 monitors traffic on the network by monitoring Ethernet packets received by transceiver 10
  • the OP timer communicates with the node processor to indicate the presence, or absence, of traffic on the network
  • the operations of the OP timer will be described in detail hereinafter with reference to FIG 4
  • the node processor 16 is connected to the Ethernet controller 12, RAM 14 and RAM 18 through the address and data buses 22
  • Node processor 16 also has a serial data input/output (I/O) port 24, a parallel data I/O port 26, and a connection 28 to system status indicators
  • the serial data I/O port 24 is provided so that the node can transmit, or receive, low speed serial asynchronous data
  • the high-speed synchronous data is being handled by synchronous receiver 30 and synchronous transmitter 32
  • An application of the serial data I/O port 24, in combination with the synchronous receiver 30, might be the transmission of an audio signal, such as music, from a CD Compact Disk
  • the music audio signal from the CD would be the synchronous input into synchronous receiver 30
  • the controls for the CD such as selection of the track to be played, would be via the serial data I/O port 24
  • Parallel data I/O port 26 has a similar purpose to serial data I/O port 24 in that it may aiso be used to pass input/output control signals associated with synchronous input/output
  • Lines 28 connected to system status indicators provide diagnostic information about the node
  • the indicators are status lights that are controlled from node processor 16 to indicate status of the node -- transmitting, receiving, failure, etc
  • control processor working with static RAM 14 is converting synchronous data to isochronous data, or vice-versa, depending on the direction of flow of data through the node
  • clock module 34 is a phase-locked loop
  • the timing signal to which this phase-locked loop is locked is a beat packet received from the network by Ethernet controller 12
  • the beat packet is the timing signal for the network, and is passed by the node processor 16 to the clock module 34 to lock the phase-lock-loop to the network timing
  • Clock module 34 can also be locked to a clock at the local node ln this case, the synchronization of I/O data is from a local clock into the clock module 34, and the phase-lock-loop locks to that local clock
  • the node in FIG 2A would then be the source of beat packet timing signals which would be sent out over the network through the Ethernet controller 12 and Ethernet transceiver 10
  • a third possibility is that there could be a local clock and a separate network clock signal ln this situation, the node processor 16, with the phase-lock-loop clock module 34, would operate as a timing coordinator to convert signals between the local clock timing and the network clock timing
  • the phase- lock-loop clock module 34 provides the clock signals for the synchronous receiver 30 and the synchronous transmitter 32
  • the synchronous receiver is an analog-to-digital converter
  • the synchronous transmitter is a digital-to-analog converter
  • FIG 2B illustrates the interaction between storage devices, hardware modules and software in the preferred embodiment to perform the operations of the invention
  • the storage devices are the pipeline, or FEFO, buffers 41, 42, 43 and 44 and beat packet buffer 45
  • the software includes the network interrupt handler 46, the phase detector 48, audio/video (or other synchronous data) processor 50, frame interrupt handler 52, supervisor 54, and conductor 56
  • the hardware components include OP timer 20, Ethernet controller 12, reference clock 62, clock source selector 64, oscillator 66, s>nchronous data input/output 68 (receiver 30 and transmitter 32 of FIG 2A) and the control input/output ports 70 (ports 24 and 26 of FIG 2A)
  • Network interrupt handler 46 is invoked any time there is an event on the network
  • the network events that invoke the handler come from either the Ethernet controller 12, or the ordered persistent (OP) timer 20
  • Ethernet controller 12 there are three possible events -- ( 1 ) a packet has been transmitted, (2) a packet has been received, and (3) a network error has occurred
  • a packet transmission event only occurs if the Ethernet controller has been told to transmit a packet
  • the packet receive event can occur any time that a packet is received from the network
  • the OP timer 20 there are two events that invoke the network interrupt handler The first event is detection of a successful transmission of a packet
  • the second event is the timing out of a deferral interval
  • the Ethernet controller 60 has received a packet with a destination address identifying this node as the destination
  • the destination address may be a specific address for this node, or it may be a multi-cast address where this node has been configured to receive packets with that multi ⁇ cast address
  • the RX (receive) module 46A detects whether the received packet contains isochronous data or asynchronous data There is a marker in each packet to identify the type of data If the packet contains isochronous data, then receive module 46A places the packet in queue, in FIFO buffer 41 If the receive packet contains asynchronous data, the packet is placed in FIFO buffer 42 by receive module 46A
  • FIG 2B Illustrated in FIG 2B are buffers to handle single channel receive and transmit of data If the node is to handle multiple channel transmission and receipt of data in packets, then there would need to be additional sets of transmit and receive buffers, or FIFO pipeline type buffers, for each channel
  • the buffers 41 -45 indicated in FIG 2B are storage locations in static RAM 14 (FIG 2 A) Further the buffers may be implemented as actual physical storage locations, or thev mav be pointers to the actual physical storage location
  • Isochronous data from a packet is buffered in FIFO 41 until frame interrupt handler 52 is ready to process the data
  • Frame interrupt handler is a software module that is clocked by oscillator 66
  • the frame interrupt handler module is looking for an event which is the clock pulse from oscillator 66
  • the frame interrupt handler 52 pulls isochronous data from buffer 41 to build a frame of synchronous data for processing by audio/video processor 50
  • the isochronous data may be either audio/video or any other data that has an isochronous or synchronous requirement
  • After the data is processed by processor 50 it is passed out over the synchronous I/O 68
  • Asynchronous data received in a packet and then buffered in FIFO 42 is passed to a supervisor software module 54 and conductor 56
  • the supervisor module will recognize control signals from the asynchronous data and generate control signals on the I/O ports.
  • a control signal received as asynchronous data destined for the serial data I/O port 24 would be recognized by the supervisor module 54 and sent out over the control I/O hardware.
  • Asynchronous data sent to the conductor includes reservation requests, as will be described hereinafter.
  • the synchronous data from an audio/video source comes into the node through the synchronous receiver in I/O 68, is processed by the processor 50, and is passed to the frame interrupt handler 52.
  • Frame interrupt handler 52 when triggered by a clock signal from oscillator 66, places the synchronous data into FIFO buffer 43. Buffer 43 is effectively buffering isochronous data for transmission.
  • Network interrupt handler 46 working with the Ethernet controller 60, will pull the isochronous data now in buffer 43 out of the buffer, build a Ethernet packet and send the Ethernet packet out onto the network.
  • the frame interrupt handler builds synchronous data packets.
  • the audio/video processor 50 and the audio/video source may be remotely controlled through the network by the node receiving asynchronous control signals
  • the asynchronous control signals from the network are received and passed through buffer 42 to the supervisor 54.
  • Supervisor 54 passes the control signals to audio/video processor 50 directly or to the audio/video source or destination through control I/O 70.
  • control data received through the control I/O 70 is handled by the supervisor 54.
  • Supervisor 54 places the asynchronous control data into buffer 44.
  • the transmit (TX) module 46B pulls the asynchronous control data from buffer 44, and the network interrupt handler 46 working with the Ethernet controller 12 sends it out to a destination on the network.
  • the timing by which the network interrupt handler transmits either isochronous data from buffer 43 or asynchronous data from buffer 44 out over the network through the Ethernet controller is desc ⁇ bed hereinafter with reference to FIG 9
  • FIG 2C shows the input and output data and signals for Ethernet controller
  • Controller 12 will buffer an initiate TX command until a TX complete occurs if the initiate TX command is received while the controller is already transmitting a packet Also, the Ethernet controller will send a RX complete interrupt to the network interrupt handler when the controller has completed the reception of a packet from another station
  • the node may operate in a timing mode where it is slaved to clock messages from the network or it may operate in a timing mode where it is the master and is generating clock messages to be sent out onto the network If the node is operating in the slave mode, the beat packet or timing message received through Ethernet controller 12 is processed at the network interrupt handler 46 and used to implement operations that lead to transmission of data from buffer 43 or buffer 44 out through Ethernet controller 12 At the same time, the timing message is passed by the network interrupt handler to the clock source selector 64 In slave mode, this source selector
  • the beat packet begins with two bytes for a frame number
  • the frame number is advanced by one, each time the beat packet is transmitted Accordingly, since the beat packet is transmitted on the timing event of the clock master pulse, the frame number indicates network time
  • the third byte (#2) in the beat packet identifies the packet as being the beat packet rather than another type of packet
  • the next byte in the beat packet is a version field to indicate to users of the network the version of the protocol that is currently operating Next, are four bytes, 32 more bits of the frame number Altogether, there are 48 bits or six bytes making up the frame number
  • the next four bytes indicate the frame period Bytes #12 and #13 contain the maximum allowed number of packets per frame Byte # 14 contains the isochronous (iso) channel count
  • the remaining bytes contain the isochronous (iso) permissions list described hereinafter
  • the ordered persistent (OP) timer 20 in FIGS 1 and 2B is shown in detail in FIG 4
  • the OP timer is monitoring the traffic on the network as seen bv the node
  • Traffic detector 72 in FIG 4 monitors this traffic and generates a binary one as it's output, if traffic is present, and a binary zero if no traffic is present
  • transition detector 74 produces a pulse This pulse is passed by OR 76 to the reset input of timer 78
  • Timer 78 is reset every time there is a transition from active to idle or idle to active
  • timer 78 is reset and held reset in the event a disable input is received from the node processor 16 (FIG 2A) over input line 80
  • Timer 78 is incremented by clock pulses from the Ethernet controller 12
  • the Ethernet controller clock runs asynchronous to the node clock
  • the controller clock generates a clock pulse that defines the period of a bit in the Ethernet packet Accordingly, timer 78 advances one tick for each Ethernet bit period
  • Comparator 82 compares the value in timer 78 with a value received through switch 84
  • Switch 84 passes either a set value from the propagation slot register 86, or a selectable deferral value received from the node processor 16 (FIG 2A)
  • Control line 88 which carries the active or idle signal from traffic detector 72 controls which value is passed by switch 84 to comparator 82
  • switch 84 passes a fixed value, five hundred twelve (512 bit periods is the minimum size of a packet) from register 86 to comparator 82
  • switch 84 passes the deferral value from the node processor
  • comparator 82 will generate an event output, an interrupt, if the size of an Ethernet packet is at least 512 bits Since timer 78 is reset to zero at the beginning of a packet and switch 84 is set to pass the value from the propagation slot register 86 during a packet comparator 82 will have an output when the value from timer 78 reaches 512
  • the output from comparator 82 is passed as an interrupt back to the node processor 16, and also sets latch 90 to the current state, active or idle, of the signal from traffic detector 72 In this way, node processor 16 can detect from latch 90 the state of traffic on the network from the active or idle signal at the time an event occurs I e at the time the interrupt signal occurs In the present example where the traffic is active, latch 90 is set active
  • the minimum size for a packet is 512 bits Therefore, if a minimum size packet is being received, the traffic signal from traffic detector 72 could be transitioning from active to idle when comparator 82 detects the timer count has reached 512 For this reason, the traffic signal input to latch 90 is slightly delayed (less than a bit period) to make sure the traffic signal is still active when the interrupt from comparator 82 sets latch 90 while detecting a packet is on the network
  • Traffic detector 72 in the OP timer also monitors traffic on the network for the pu ⁇ ose of detecting when the network is idle, I e , no station is currently transmitting In that situation, the traffic signal from traffic detector 72 goes low indicating the idle state Transition detector 74 detects this transition of the traffic signal, and resets timer 78 through OR 76 And the idle state of the traffic signal also controls switch 84 to pass the deferral value rather than the propagation slot value
  • the deferral value is received from the node processor 16 (FIG 2A)
  • the deferral value is set to one of a plurality of values depending on conditions on the network and at the local node as will be described hereinafter In any event with switch 84 now passing the deferral value to comparator 82, the comparator generates an interrupt signal when the timer value in timer 78 equals the deferral value
  • the interrupt event now represents a predefined amount of idle time on the network, as defined by the deferral value Latch 90 is set to idle, i e
  • This idle state is read from latch 90 by the node control processor 16 to detect the network is idle More particularly, the setting of latch 90 to the idle state indicates to the node processor 16 that the traffic on the network has been idle for the length of time equivalent to the deferral value.
  • FIG 4 is to set the order in which the node expects to gain access to the network Highest priority node would have a deferral value of zero, and with increasing deferral values the order of access of each node is specified This is illustrated more particularly in the timing diagram of FIG 9 described later herein
  • FIGS 5 The network interrupt handler 46 of FIG. 2B is shown in detail in FIGS 5, composed of FIGS 5A and 5B, 6, and 7
  • FIG 5 illustrates the logical operations of the network interrupt handler in response to interrupts from the Ethernet controller 12
  • FIG 6 illustrates the operations of the network interrupt handler 46 in response to interrupts from the order persistent timer 20
  • FIG 7, composed of FIG 7A and 7B illustrates the transmission schedule operations which are used to control or schedule transmissions in response to logical operations completed in FIGS 5 and 6 ln
  • the network interrupt handler can respond to three interrupts from the Ethernet controller ⁇ transmission complete, receipt complete, or error
  • decision operation 100 checks for transmission complete
  • decision operation 102 checks for receipt of an Ethernet packet being complete If both of these test operations result in a Ano@ result, then the interrupt must be for an error condition, and operation 104 logs the error
  • the interrupt handler then expects an RX (receive) interrupt
  • Interrupt handlers are only invoked when an event occurs When the interrupt handler completes, the processor resumes what it was doing when the event occurred.
  • the termination points in the operation flows shown herein indicate the next normally expected event This may or may not be the actual next event
  • the logical operation flow branches yes from decision operation 100 to decision operation 106
  • Decision operation 106 is testing whether or not the transmitted Ethernet packet was an isochronous channel transmission If it was an isochronous channel transmission, then the operation flow branches Ayes@ to schedule the next transmission
  • the scheduling of transmissions is handled in FIG 7 desc ⁇ bed hereinafter
  • the operation flow branches Ano@ from decision operation 106 to decision operation 108
  • a non-isochronous channel transmission means that transmission of an asynchronous Ethernet packet has taken place
  • Decision operation 108 is testing whether a collision occurred during that transmission
  • the control of asynchronous transmission is adaptive P- persistent control Since the asynchronous transmission is not under ordered persistent control, it is possible that collisions will occur Depending on whether a collision occurred during asynchronous transmission, the P variable will be increased or decreased If there was no collision, P is increased If there was a collision, P is decreased The quotient 1/P represents an estimate of the number ot stations on the network that are attempting to transmit simultaneously during the asynchronous portion ofthe frame After P is increased or decreased, the operation flow proceeds to FIG 7 to schedule the next transmission
  • FIG 8 illustrates the format of a network frame in a preferred embodiment of the invention
  • the frame begins with a beat packet 1 16
  • the beat packet is followed by a plurality of isochronous data packets 1 18
  • the isochronous data packets are followed by asynchronous data packets 120, and the asynchronous data packets are followed by an idle network test pe ⁇ od 122
  • decision operation 124 is testing whether or not the isochronous data packet has an address that the node has been configured to receive If the address matches, queuing module 126 queues the isochronous data packet into the isochronous FIFO buffer 41 (FIG 2B) On the other hand, if there is no channel address match, then the isochronous data packet is discarded by operation 128 In either case, after the isochronous data packet is queued or discarded, the network interrupt handler 46 then expects the next RX interrupt ln the event the Ethernet packet received is not an isochronous data packet, decision 1 14 branches the operation flow to decision operation 130
  • Decision operation 130 is testing whether the packet that is not an isochronous data packet is a beat packet If the data packet is not a beat packet, it must be an asynchronous data packet In that event, the operation flow branches Ano@ from decision operation 130 to queue module 132 Queue module 132 queues the asynchronous data packet in FIFO buffer 42 (FIG 2B) If the data packet is a beat packet, then decision operation 130 branches the operation flow to step 134 At step 134, if the node is a slave node, clock module 34 (FIG 2A) is advanced to the time indicated by the beat packet frame number Clear operation 136 then clears the frame traffic counter The frame traffic counter counts the number of Ethernet packets received since the last beat packet The count is reset to zero each time a beat packet is received After the local clock has been updated, the local isochronous data packets queued for transmission in FIFO 43 are checked against the local clock Each isochronous data packet carries a time stamp If the isochronous data packet is stale, i e the
  • Step 138 the operations for setting up the transmission of isochronous data packets begin Decision operation 140 checks to see if there is a transmission channel match between any entry in the permission list in the beat packet and the present node
  • the beat packet contains a isochronous permission list starting at byte #15 in the beat packet
  • the number of isochronous channels that will be transmitted in the frame is defined by the isochronous channel count stored at byte #14 in the beat packet Accordingly, the count in byte #14 indicates how many isochronous channel permissions will be listed in the list sta ⁇ ing at byte # 1 5
  • Each entry in the isochronous permission list is 6 bytes long The entry contains the intended destination address of transmissions for that channel
  • conductor 56 at the conductor station builds the permission list, as hereinafter described, from reservation requests from other stations and from its own node control processor 16
  • the slave station When a channel has a message originating at a slave station, the slave station generates an Ethernet packet having a source address and a destination address plus the isochronous data This packet is stored in the FIFO 43 of the slave station awaiting transmission
  • the slave station generates a reservation request from the supervisor 54 which is stored in the asynchronous data queue 44
  • the conductor 56 can then build the permission list in the next beat packet
  • decision operation 140 is detecting whether or not there is a transmission channel match between the contents of an isochronous data packet in queue 42 and an entry on the permission list in the beat packet just received More particularly, decision 140 is looking for a match between the destination address in the packet at the head of TX queue 43, and the destination address in one of the entries of the permission list in the beat packet If there is a match, then operation 142 detects the position on the permission list, and sets the deferral value in accordance with the position on the permission list If there is no match, then operation 144 sets the deferral value to a maximum value The deferral value is equal to a deferral number, I e , the position on the permission list, multiplied by 512
  • FIG 9 is a timing diagram for an example of three nodes, or stations, operating in accordance with the invention The relative timing of packets in FIG.
  • the beat packet permission list 147 contains four entries on the permission list specifying the sequence of transmission of isochronous data packets from the stations Station I is the conductor station and sends the beat packet with the permission list ln the beat packet permission list, station two has first position, station three which intends to transmit two channels has second and fourth positions, and station one has third position These positions on the permission list equate to a deferral number of zero for station two deferral numbers one and three for the two channels respectively at station three, and deferral number two for the channel at station number one To arrive at the deferral value, the deferral number is multiplied times 512 Thus, the deferral value for station two is zero, for station one is 1,024, and for the two channels at station three, 512 and 1,536, respectively
  • these deferral values control when the OP timer generates an interrupt under idle network conditions
  • FIG 6 illustrates the operations in the network interrupt handler 46 (FIG 2B) in response to an event detected at the OP timer 20 (Fig 2B)
  • decision operation 146 detects whether the network was active or idle at the exact time of the event If the network is active, this indicates another channel or packet is being transmitted The operation flow branches Ayes@ in this event from decision 146 to schedule the next transmission using the transmission scheduling routine in FIG 7 If the network is idle, the operation flow branches from decision operation 146 to step 148 An idle condition detected at step 146 indicates the deferral value or interval has expired After the idle state is detected, step 148 disables the OP timer, and step 150 initiates the deferred transmission of a data packet marked in operation 162 or operation 174 of FIG 7 After the deferred transmission is initiated, the interrupt handler expects a transmission (TX) complete interrupt
  • the transmission scheduling module in the network interrupt handler is shown in FIG 7
  • the scheduling module is called from either FIG 5 or FIG 6
  • the logical operations of the scheduling module begin at operation 152 which increments the frame traffic counter by one
  • the frame traffic counter counts the number of packets transmitted on the network since the beginning ofthe frame
  • Traffic counter 152 is incremented each time the station in which the traffic counter is located transmits an Ethernet packet or each time the OP timer at the station detects transmission of a packet bv another station
  • decision operation 154 detects whether the total number of packets counted for the frame exceeds a frame total as specified by the beat packet in the packets per frame at byte # 12 If decision step 154 detects that the total number of packets counted exceeds the frame total specified in the beat packet, then no further packets should be transmitted Accordingly, the operation flow branches Ayes@ from decision operation 154 to disable operation 156 Disable operation 156 disables the OP timer which effectively stops any further transmission of packets from the station If the frame traffic count does not exceed the frame total, then the operation flow branches from decision 154 to decision operation 158
  • Decision operation 158 is testing whether the isochronous data transmission FIFO 43 in FIG 2B is empty In other words, have all of the isochronous data packets from the station already been transmitted 7 If so, the operation flow branches from operation 158 to decision operation 160 Decision operation 160 is testing whether the asynchronous data transmission queue 44 is empty If all ofthe asynchronous data packets from the station have also already been transmitted, then the operation flow branches yes from decision operation 160 to step 156 to disable the OP timer The network interrupt handler then expects the next RX interrupt If there is an isochronous data packet queued for transmission in FIFO queue 43 (FIG 2B), then the operation flow branches Ano@ from decision operation 158 to mark operation 162 Operation 162 marks the deferred isochronous data packet at the top ofthe queue 43 for transmission Then, step 164 generates the current deferral number for the deferred isochronous data packet marked by step 162 The current deferral number is found by updating the packet's original deferral number The original deferral number is
  • the current deferral number is equal to the original deferral number minus the count in the frame traffic counter Accordingly, if the original deferral number was three and the frame traffic counter is two, then the current deferral number is one
  • decision operation 166 tests whether the current deferral number is equal to zero If it is equal to zero, then step 168 disables OP timer This insures that the OP timer will not generate an interrupt during transmission Step 170 initiates the transmission of the marked isochronous data packet at the top of the queue 43 (FIG 2B) Thereafter, the network interrupt handler expects the TX complete interrupt
  • the OP timer is set to the current deferral value as calculated by step 172 This is done by multiplying the current deferral number times 512 and passing the result as the deferral value to the OP timer After step 172 sets this deferral value to the OP timer, the network interrupt handler expects the next RX interrupt This completes the scheduling of an isochronous data packet transmission from a station If the isochronous data packet queue 43 is empty, then decision operation
  • the operation flow branches from decision operation 160 to step 174 ln step 174, the asynchronous data packet at the top of queue 44 is marked for transmission
  • Decision operation 176 tests whether the frame traffic counter value is greater than or equal to the isochronous channel count
  • the isochronous channel count is provided in the beat packet and corresponds to the number of entries on the isochronous packet permission list, which is the number of expected isochronous channel packets to be transmitted during the frame If the count in the frame traffic counter is not greater than or equal to the isochronous channel count, then the operation flow branches Ano@ to set deferral module 178 Module 178 sets the deferral number to 2 + the isochronous channel count - the traffic count This deferral number will provide a deferral value high enough to essentially guarantee that the isochronous data packet transmissions for all channels will be completed before an asynchronous data packet is transmitted by this station If the
  • operation 190 advances the local clock Recall that the timer tick is from a phase lock loop and will be either locked to a reference clock if the station is operating as the conductor, 1 e a master station, or will be locked to the network clock if the station is a slave station Operation
  • queue module 196 queues synchronous data from the synchronous I/O and audio/video processor 50 and loads that synchronous data into TX FIFO buffer 43 (FIG 2B) Accordingly, each time there is a timer tick, synchronous data is loaded into an isochronous packet on the TX FLFO buffer
  • operation 198 in the frame interrupt handler checks for stale isochronous data packets at the top of the queue in RX FIFO buffer 41 , i e , the next packet in queue 41 to be processed by the synchronous data processor 50
  • Operation 198 discards any stale data packet as it reaches the top of the RX queue This is accomplished by comparing the time stamp on the RX isochronous data packet at the top of the queue with the local clock time The RX packets are generally discarded only at start up when the network system is synchronizing itself After stale RX isochronous packets are discarded decision operation 200 tests whether there is isochronous data remaining in queue 41 If there is, the operation flow branches to operation 202 to buffer the received isochronous data packet in the synchronous I/O 68 (FIG 2B) until the destination synchronous I/O device is ready for the data If there is no queued isochronous data m buffer 41 , then step 204 buffers blank video and/or silence into synchronous I
  • FIG 1 1 illustrates the logical operations performed by conductor 56 (FIG 2B) in handling an asynchronous request
  • the conductor generates the beat packet shown in FIG 3
  • the beat packet contains the permission list for transmission during a frame If a channel or station wishes to get on that permission list, it sends a reservation request to the conductor through the supervisor 54 in FIG 2B
  • decision operation 206 checks whether the channel is already reserved The reservation request contains the channel number, the priority ofthe channel, and the estimated bandwidth to be used by the channel If the request is for a channel that has already reserved a packet in the frame, then decision operation 206 branches yes to decision operation
  • step 208 Decision operation 208 is testing or looking for a zero bandwidth request for the channel A zero bandwidth request corresponds to turning off the channel If there is a zero bandwidth request detected, then the operation flow branches to step 210, and step 210 removes the channel from the iso permissions list in the beat packet After the channel is removed from the permission list, the request handler in the conductor is expecting the next reservation request
  • decision operation 208 detects the bandwidth requested was not zero, this indicates the channel was already reserved No new channel, or no additional packet for the channel is granted The operation flow branches "no", and the conductor expects the next reservation request
  • decision operation 212 tests whether or not there is enough bandwidth for the new channel Operation 212 detects the ANetwork Exhausted Flag @ If the network was not detected to be exhausted, the flow branches to operation 214 Operation 214 inserts the channel into the iso permission list in the beat packet After the channel is inserted into the permission list, the operation flow returns to the conductor expecting the next reservation request If the network was detected to be exhausted, then the operation branches Ano,@ expecting the next reservation request As a result, the channel is not inserted into the permission
  • FIG 12 illustrates additional operations performed by the frame interrupt handler 52 (Fig 2B) in response to a timer tick event
  • the logical operations in FIG 12 begin with the receipt of a timer tick from the master clock at the station Since the conductor is setting the timing for the network, l e conductor is only operative in the conductor station or master station, it will be receiving from its own clock the network timing Thus, the timer tick is the trigger for the operations in FIG 12
  • the logical operations begin by incrementing the frame number field of the beat packet image in buffer 45 at step 216 After step 216 increments the frame number of the beat packet, decision operation 218 tests whether the network exhausted flag has been set The network exhausted flag is set by the operations in
  • FIG 13 described hereinafter If the network exhausted flag is set. it indicates that the entire bandwidth of the network is in use
  • the operation branches Ano@ from decision operation 218 to decision operation 220
  • Decision operation 220 tests whether or not the asynchronous permissions (packets per frame) have reached a maximum value for the frame The number of packets in the frame should not exceed a reasonable maximum number of packets derived from the frame rate and the network bit rate This reasonable maximum number of packets is the maximum value used in the test performed by operation 220 If the operation flow branches Ano@ from both operation 218 and operation 220, there is more space for asynchronous packets in the frame Step 222 increments by one the packets per frame in the beat packet image in buffer 45 Thereafter, the operation flow returns to clear module 224 Likewise, if the network exhausted flag has been set, or if the flag was not set but the asynchronous permissions were maximized, the operation would flow to clear module 224 also Clear module 224 clears the network exhausted flag since the flag is only active for one frame Clearing the flag prepares the conductor to handle the next frame After the network exhausted flag is cleared, operation
  • step 236 clears the EOF flag, and step 238 simulates receipt of the beat packet at the conductor station This is necessary since the beat packet is sent from the conductor station, and the conductor station needs also to act as if it had received the information in the beat packet
  • step 238 simulates receipt of the beat packet at the conductor station This is necessary since the beat packet is sent from the conductor station, and the conductor station needs also to act as if it had received the information in the beat packet
  • the station enters the schedule transmission operation flow described above in FIG 7
  • the next operation is decision operation 240 which tests whether or not the async permissions are minimized If the asynchronous permissions have already been minimized, meaning that network bandwidth exhaustion is being caused by isochronous channels filling up the frame, then the operation flow branches from decision operation 240 to remove module 242 Remove module 242 removes the lowest priority isochronous channel from the isochronous permission list After the iso channel is removed, the conductor expects the next OP timer interrupt
  • the operation flow branches Ano@ from operation 240 to operation 244 Operation 244 decrements by one the packets per frame The operation flow then expect the next OP timer interrupt

Abstract

The present invention has solved the collision problems in a CSMA network protocol and at the same time optimized performance of the network. This is accomplished by giving control of the size of the reserved portion and the size of the reservation portion of the communication frame to stations in the network. Further, the reserved portion is allotted to isochronous data packets each of whose length is variable. Also, only those packets that have a reservation are in the frame, and they are placed in the frame in order in accordance with the position of the permission or reservation list. The network timing is controlled by one of the stations acting as a conductor for the network. This conductor station receives the reservation requests from the other stations and builds a beat packet. The beat packet is transmitted from the conductor station to all stations of the network, and provides the timing or beat of the network that all stations are synchronized with. In addition, the beat packet contains the permission list (reservation list) identifying the stations that will transmit, and when they will transmit during the frame. The network interrupt handler (46) and the conductor (56) at the conductor station build this beat packet.

Description

MEDIA ACCESS CONTROL FOR ISOCHRONOUS DATA
PACKETS IN CARRIER SENSING MULTIPLE ACCESS SYSTEMS
CROSS REFERENCE TO RELATED APPLICATION
This application is related to the following co-pending, commonly assigned patent application of K Gross, C Anderson, and D Lieb, entitled "ORDER PERSISTENT TIMER FOR CONTROLLING EVENTS AT MULTIPLE PROCESSING STATIONS", Serial Number 08/631 ,067 and filed concurrently herewith, the disclosure of which is incoφorated herein by reference in its entirety
BACKGROUND OF THE INVENTION
Field of the Invention This invention relates to a media access control for handling transmission and reception of isochronous data and asynchronous data More particularly, the invention relates to preventing collisions during the transmission of isochronous data in carrier sensing multiple access transmission systems
Description of Related Art
With the advent of multimedia processing in computing systems and increased deployment of digital audio and video formats, there is an increased demand for reliable transmission of synchronous and isochronous data over standard computer networks Audio and video are but examples of synchronous oi isochronous data Any data stream that must be clocked and continuous would be considered synchronous A data stream which must be delivered with determinant latency could be considered isochronous
Local area networks, such as Ethernet, were developed to carry computer data Computer data is primarily asynchronous in nature, and is not highly sensitive to non-deterministic latencies Ethernet uses a earner sense multiple access with collision detection media access control protocol (CSMA/CD MAC) This type of MAC is characterized by very low typical latencies, and reasonably high potential throughput
The shortcomings of Ethernet for the transmission of synchronous and isochronous data are in it's potentially high latencies when collisions occur between stations transmitting on the network Numerous schemes have been developed for the transmission of synchronous and isochronous data over multiple access transmission systems A reservation system typically employs two communications channels, one channel, the reservation channel, is used to communicate reservation requests from individual stations to a central authoπty which then allocates bandwidth in the primary channel, as requested, if possible The reservation channel typically carries asynchronous data, while the primary channel carries isochronous data Several schemes have been previously devised to implement a reservation system on a single multiple access channel These schemes involve time dividing the channel into "frames" and further subdividing the frames to create the two channels required for a reservation system One such system divides a frame into two Time Division Multiplexed (TDM) regions, one for the primary channel and one for the reservation channel Another scheme splits frames into a TDM primary channel region and a CSMA reservation region To date, there is no solution to collision problems in a CSMA protocol without significant inefficiencies in transmission
SUMMARY OF THE INVENTION
The present invention solves the latency problem by essentially eliminating collisions for synchronous and isochronous data on an Ethernet network The current invention differs from previous schemes in that it works on an unmodified Ethernet network using standard Ethernet transceivers and controllers augmented by a simple timing circuit The current invention also differs from previous schemes in that the boundary between the primary and reservation regions of the frame floats allowing the relative bandwidths allocated to the primary and reservation channels to balance dynamically as traffic conditions vary in time During the reservation portion ofthe frame an "adaptive p-persistent" MAC is employed.
During the primary channel region ofthe frame, the current invention utilizes an "ordered persistent" or "o-persistent" MAC. The present invention has solved the collision problems in a CSMA network protocol and at the same time optimized performance ofthe network.
This is accomplished by giving control ofthe size ofthe reserved portion and the size ofthe reservation portion ofthe communication frame to stations in the network Further, the reserved portion is allotted to isochronous data packets each of whose length is variable. Also, only those packets that have a reservation are in the frame, and they are placed in the frame in order in accordance with their position on the permission or reservation list.
An order persistent timer is provided in each station to control the timing of transmission of each isochronous data packet from a station and to also control the timing of transmission of asynchronous data packets that include reservation requests. The OP timer at each station monitors traffic in the network from other stations to detect whether the network is active or idle. In an active state, the OP timer times a set interval of time sufficient to indicate the successful transmission of a packet on the frame. In the idle state (no packet on the network from another station), the OP timer times a number of deferral time intervals that are used with a network interrupt handler at the station to control the transmission of isochronous datajDackets without collision, and asynchronous data packets thereafter. The network timing is controlled by one of the stations acting as a conductor for the network. This conductor station receives the reservation requests from the other stations and builds a beat packet. The beat packet is transmitted from the conductor station to all stations ofthe network, and provides the timing or beat ofthe network that all stations are synchronized with. In addition, the beat packet contains the permission list (reservation list) identifying the stations that will transmit, and when they will transmit during the frame. The network interrupt handler and the conductor at the conductor station build this beat packet.
Each station also has a frame interrupt handler that queues data from a synchronous data stream as isochronous packets in a transmit pipeline buffer awaiting transmission The frame interrupt handler also unloads isochronous packets from a receive pipeline buffer, and converts them to a synchronous data stream A supervisor works asynchronous pipeline buffers to load and unload asynchronous control messages transmitted as asynchronous data packets The reservation requests are also transmitted as asynchronous data packets to the conductor at the conductor station from stations making reservation requests The network interrupt handler will maximize the transmission of isochronous data packets Space in the communication frame is given first to isochronous data packets Thereafter, remaining space is filled with asynchronous data packets until the frame is full
The great utility of the invention is that the communication frame has maximum efficiency, while collisions between isochronous data packets is avoided The foregoing and other features and advantages of the invention
Figure imgf000006_0001
be apparent from the following more particular description of a preferred embodiment of the invention as illustrated in the accompany drawings
BRIEF DESCRIPTION OF THE DRAWINGS
FIG 1 illustrates a network of stations where each station is implemented in accordance with the invention
FIG 2 A illustrates a preferred embodiment for the station hardware of the invention FIG 2B shows the hardware and software elements of the preferred embodiment of the invention
FIG 2C shows the input/output data and signals for the Ethernet controller in FIGS 2A and 2B
FIG 3 shows the format of a beat packet FIG 4 shows the ordered persistent timer of FIGS 2 A and 2B
FIG 5, composed of FIGS 5A and 5B, illustrates the flow of operations performed by the network interrupt handler in FIG 2B to handle with the Ethernet controller the transmission and reception of packets at the station
FIG 6 illustrates the flow of operations performed by the network interrupt handler with the OP timer to schedule transmissions and to initiate transmissions FIG 7, composed of FIGS 7A and 7B shows the operations for scheduling the transmission of isochronous and asynchronous data packets
FIG 8 shows the format of a transmitted frame having a beat packet, isochronous data packets and asynchronous data packets
FIG 9 is a timing diagram for the transmission of isochronous and asynchronous data packets in a network such as FIG 1 having stations as shown in FIGS 2A and 2B
FIG 10 shows the logical operations performed by the frame interrupt handler working with the synchronous I/O and the isochronous data buffers
FIG 1 1 illustrates the logical operations performed by conductor 56 (FIG 2B) in handling an asynchronous request
FIG 12 illustrates additional operations performed by the frame interrupt handler in response to a timer tick event
FIG 13 illustrates additional operations performed by the network interrupt handler 46 dunny an OP timer event
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
In the network of FIG 1 , each of the stations connected to network 8 is implemented in accordance with the preferred embodiment ofthe invention Station #1 is the conductor for the network and generates the beat packet that provides the timing for the network and a permission list to each of the stations All stations receive the beat packet at the beginning of a frame The permission list in the beat packet controls the sequence of transmission of isochronous data packets on the network by the various stations This permission list of isochronous or iso channels is used to generate a deferred time of transmission for iso channels from each station An iso channel is an isochronous data packet with a defined destination station, or stations, in the network
Each station generates a deferral value based on the position of its iso channel on the permission list An ordered persistent timer in each station uses the deferral value to control the timing of transmission of an iso channel from the station Each station working with the OP timer schedules transmission times for iso channels when the network is active (packet is on the network) and initiates transmission of an iso channel (an isochronous packet) on 0 (zero) deferral for the iso channel
FIG 2A illustrates a preferred embodiment of a station or node, hardware architecture in accordance with the invention When the node is operating in a receive mode Ethernet packets of information are received from the communication network at the Ethernet transceiver 10 From transceiver 10, the Ethernet packets go to the Ethernet controller 12 Controller 12 buffers the packets while they are being stored for processing in the node at the static RAM 14 When the node is operating in a transmission mode, the node processor 16 will place the packets to be transmitted into static RAM 14 When the node or station is ready to transmit the packets, they are pulled from the static RAM 14 and sent out over the network link through the Ethernet controller 12 and the Ethernet transceiver 10 Static RAM 14 is the mam working storage for node processor 16 Flash
RAM 18 is non-volatile storage storing the program code used by the node processor 16 and storing configuration information for the node, such as the station address
The ordered persistent (OP) timer 20 monitors traffic on the network by monitoring Ethernet packets received by transceiver 10 The OP timer communicates with the node processor to indicate the presence, or absence, of traffic on the network The operations of the OP timer will be described in detail hereinafter with reference to FIG 4
The node processor 16 is connected to the Ethernet controller 12, RAM 14 and RAM 18 through the address and data buses 22 Node processor 16 also has a serial data input/output (I/O) port 24, a parallel data I/O port 26, and a connection 28 to system status indicators The serial data I/O port 24 is provided so that the node can transmit, or receive, low speed serial asynchronous data The high-speed synchronous data is being handled by synchronous receiver 30 and synchronous transmitter 32 An application of the serial data I/O port 24, in combination with the synchronous receiver 30, might be the transmission of an audio signal, such as music, from a CD Compact Disk The music audio signal from the CD would be the synchronous input into synchronous receiver 30 The controls for the CD, such as selection of the track to be played, would be via the serial data I/O port 24 Parallel data I/O port 26 has a similar purpose to serial data I/O port 24 in that it may aiso be used to pass input/output control signals associated with synchronous input/output data that is to be transmitted, or received, over the network
Lines 28 connected to system status indicators provide diagnostic information about the node The indicators are status lights that are controlled from node processor 16 to indicate status of the node -- transmitting, receiving, failure, etc
Note that data on the Ethernet controller side ofthe control processor is isochronous data On the other hand, data at the synchronous receiver and synchronous transmitter is synchronous data Thus, the control processor working with static RAM 14 is converting synchronous data to isochronous data, or vice-versa, depending on the direction of flow of data through the node
The clock signals for timing control of the synchronous data are provided by clock module 34 Clock module 34 is a phase-locked loop The timing signal to which this phase-locked loop is locked is a beat packet received from the network by Ethernet controller 12 The beat packet is the timing signal for the network, and is passed by the node processor 16 to the clock module 34 to lock the phase-lock-loop to the network timing
Clock module 34 can also be locked to a clock at the local node ln this case, the synchronization of I/O data is from a local clock into the clock module 34, and the phase-lock-loop locks to that local clock The node in FIG 2A would then be the source of beat packet timing signals which would be sent out over the network through the Ethernet controller 12 and Ethernet transceiver 10
A third possibility is that there could be a local clock and a separate network clock signal ln this situation, the node processor 16, with the phase-lock-loop clock module 34, would operate as a timing coordinator to convert signals between the local clock timing and the network clock timing
In any of these three clock scenarios, the phase- lock-loop clock module 34 provides the clock signals for the synchronous receiver 30 and the synchronous transmitter 32 In the simplest form, the synchronous receiver is an analog-to-digital converter, and the synchronous transmitter is a digital-to-analog converter
FIG 2B illustrates the interaction between storage devices, hardware modules and software in the preferred embodiment to perform the operations of the invention The storage devices are the pipeline, or FEFO, buffers 41, 42, 43 and 44 and beat packet buffer 45 The software includes the network interrupt handler 46, the phase detector 48, audio/video (or other synchronous data) processor 50, frame interrupt handler 52, supervisor 54, and conductor 56 The hardware components include OP timer 20, Ethernet controller 12, reference clock 62, clock source selector 64, oscillator 66, s>nchronous data input/output 68 (receiver 30 and transmitter 32 of FIG 2A) and the control input/output ports 70 (ports 24 and 26 of FIG 2A)
Network interrupt handler 46 is invoked any time there is an event on the network The network events that invoke the handler come from either the Ethernet controller 12, or the ordered persistent (OP) timer 20 In the case of Ethernet controller 12, there are three possible events -- ( 1 ) a packet has been transmitted, (2) a packet has been received, and (3) a network error has occurred A packet transmission event only occurs if the Ethernet controller has been told to transmit a packet The packet receive event can occur any time that a packet is received from the network In the case of the OP timer 20, there are two events that invoke the network interrupt handler The first event is detection of a successful transmission of a packet The second event is the timing out of a deferral interval
In a packet receive event, the Ethernet controller 60 has received a packet with a destination address identifying this node as the destination The destination address may be a specific address for this node, or it may be a multi-cast address where this node has been configured to receive packets with that multi¬ cast address
When the network interrupt handler detects a receive packet event from the Ethernet controller, the RX (receive) module 46A detects whether the received packet contains isochronous data or asynchronous data There is a marker in each packet to identify the type of data If the packet contains isochronous data, then receive module 46A places the packet in queue, in FIFO buffer 41 If the receive packet contains asynchronous data, the packet is placed in FIFO buffer 42 by receive module 46A
Illustrated in FIG 2B are buffers to handle single channel receive and transmit of data If the node is to handle multiple channel transmission and receipt of data in packets, then there would need to be additional sets of transmit and receive buffers, or FIFO pipeline type buffers, for each channel The buffers 41 -45 indicated in FIG 2B are storage locations in static RAM 14 (FIG 2 A) Further the buffers may be implemented as actual physical storage locations, or thev mav be pointers to the actual physical storage location
Isochronous data from a packet is buffered in FIFO 41 until frame interrupt handler 52 is ready to process the data Frame interrupt handler is a software module that is clocked by oscillator 66 In other words, the frame interrupt handler module is looking for an event which is the clock pulse from oscillator 66 When that event occurs, the frame interrupt handler 52 pulls isochronous data from buffer 41 to build a frame of synchronous data for processing by audio/video processor 50 The isochronous data may be either audio/video or any other data that has an isochronous or synchronous requirement After the data is processed by processor 50, it is passed out over the synchronous I/O 68 Asynchronous data received in a packet and then buffered in FIFO 42 is passed to a supervisor software module 54 and conductor 56 The supervisor module will recognize control signals from the asynchronous data and generate control signals on the I/O ports. For example, a control signal received as asynchronous data destined for the serial data I/O port 24 (FIG. 2A) would be recognized by the supervisor module 54 and sent out over the control I/O hardware. Asynchronous data sent to the conductor includes reservation requests, as will be described hereinafter.
During transmission mode, the synchronous data from an audio/video source comes into the node through the synchronous receiver in I/O 68, is processed by the processor 50, and is passed to the frame interrupt handler 52. Frame interrupt handler 52, when triggered by a clock signal from oscillator 66, places the synchronous data into FIFO buffer 43. Buffer 43 is effectively buffering isochronous data for transmission. Network interrupt handler 46, working with the Ethernet controller 60, will pull the isochronous data now in buffer 43 out of the buffer, build a Ethernet packet and send the Ethernet packet out onto the network. Alternatively, the frame interrupt handler builds synchronous data packets.
These data packets are loaded/unloaded synchronously on the frame interrupt handler side of the FIFO buffers 41-44 and loaded/unloaded isochronously on the network interrupt handler side of the FIFO buffers.
The audio/video processor 50 and the audio/video source may be remotely controlled through the network by the node receiving asynchronous control signals The asynchronous control signals from the network are received and passed through buffer 42 to the supervisor 54. Supervisor 54 passes the control signals to audio/video processor 50 directly or to the audio/video source or destination through control I/O 70. During transmission mode, control data received through the control I/O 70 is handled by the supervisor 54. Supervisor 54 places the asynchronous control data into buffer 44. The transmit (TX) module 46B pulls the asynchronous control data from buffer 44, and the network interrupt handler 46 working with the Ethernet controller 12 sends it out to a destination on the network. The timing by which the network interrupt handler transmits either isochronous data from buffer 43 or asynchronous data from buffer 44 out over the network through the Ethernet controller is descπbed hereinafter with reference to FIG 9
FIG 2C shows the input and output data and signals for Ethernet controller
12 The initiate TX command or signal comes from the network interrupt handler and a TX complete interrupt goes back to the network interrupt handler when the transmission of a packet from the station is completed Controller 12 will buffer an initiate TX command until a TX complete occurs if the initiate TX command is received while the controller is already transmitting a packet Also, the Ethernet controller will send a RX complete interrupt to the network interrupt handler when the controller has completed the reception of a packet from another station As descπbed earlier with reference to FIG 2A, the node may operate in a timing mode where it is slaved to clock messages from the network or it may operate in a timing mode where it is the master and is generating clock messages to be sent out onto the network If the node is operating in the slave mode, the beat packet or timing message received through Ethernet controller 12 is processed at the network interrupt handler 46 and used to implement operations that lead to transmission of data from buffer 43 or buffer 44 out through Ethernet controller 12 At the same time, the timing message is passed by the network interrupt handler to the clock source selector 64 In slave mode, this source selector will pass the timing event to the phase detector 48 to lock the phase-lock-loop oscillator 66 to the beat of the network, I e , the timing signal represented by the beat packet If the node is operating as a master or conductor station and is the source of the beat packet, then timing pulses from oscillator 66 in this phase-lock-loop are passed back to the network interrupt handler 46 Interrupt handler 46, when it detects the clock pulse event from oscillator 66, sends out the beat packet message through the Ethernet controller 12 The beat packet message is generated by conductor 56 and stored in buffer 45 The beat packet that is transmitted is shown in FIG 3
As shown in FIG 3, the beat packet begins with two bytes for a frame number The frame number is advanced by one, each time the beat packet is transmitted Accordingly, since the beat packet is transmitted on the timing event of the clock master pulse, the frame number indicates network time The third byte (#2) in the beat packet identifies the packet as being the beat packet rather than another type of packet The next byte in the beat packet is a version field to indicate to users of the network the version of the protocol that is currently operating Next, are four bytes, 32 more bits of the frame number Altogether, there are 48 bits or six bytes making up the frame number The next four bytes indicate the frame period Bytes #12 and #13 contain the maximum allowed number of packets per frame Byte # 14 contains the isochronous (iso) channel count The remaining bytes contain the isochronous (iso) permissions list described hereinafter
The ordered persistent (OP) timer 20 in FIGS 1 and 2B is shown in detail in FIG 4 The OP timer is monitoring the traffic on the network as seen bv the node In other words, any packet transmitted onto the network by any other node in the network is received at the node and will be seen by the OP timer 20 Traffic detector 72 in FIG 4 monitors this traffic and generates a binary one as it's output, if traffic is present, and a binary zero if no traffic is present Each time there is a transition from active (traffic) to idle (no traffic) or idle to active, transition detector 74 produces a pulse This pulse is passed by OR 76 to the reset input of timer 78 Timer 78 is reset every time there is a transition from active to idle or idle to active Also, timer 78 is reset and held reset in the event a disable input is received from the node processor 16 (FIG 2A) over input line 80 Timer 78 is incremented by clock pulses from the Ethernet controller 12
The Ethernet controller clock runs asynchronous to the node clock The controller clock generates a clock pulse that defines the period of a bit in the Ethernet packet Accordingly, timer 78 advances one tick for each Ethernet bit period
Comparator 82 compares the value in timer 78 with a value received through switch 84 Switch 84 passes either a set value from the propagation slot register 86, or a selectable deferral value received from the node processor 16 (FIG 2A) Control line 88 which carries the active or idle signal from traffic detector 72 controls which value is passed by switch 84 to comparator 82 When the control line indicates the network is active, i e , an Ethernet packet is being transmitted by some station, switch 84 passes a fixed value, five hundred twelve (512 bit periods is the minimum size of a packet) from register 86 to comparator 82 When the control line is carrying an idle signal, switch 84 passes the deferral value from the node processor
The output of comparator 82 has two purposes First, comparator 82 will generate an event output, an interrupt, if the size of an Ethernet packet is at least 512 bits Since timer 78 is reset to zero at the beginning of a packet and switch 84 is set to pass the value from the propagation slot register 86 during a packet comparator 82 will have an output when the value from timer 78 reaches 512 The output from comparator 82 is passed as an interrupt back to the node processor 16, and also sets latch 90 to the current state, active or idle, of the signal from traffic detector 72 In this way, node processor 16 can detect from latch 90 the state of traffic on the network from the active or idle signal at the time an event occurs I e at the time the interrupt signal occurs In the present example where the traffic is active, latch 90 is set active
The minimum size for a packet is 512 bits Therefore, if a minimum size packet is being received, the traffic signal from traffic detector 72 could be transitioning from active to idle when comparator 82 detects the timer count has reached 512 For this reason, the traffic signal input to latch 90 is slightly delayed (less than a bit period) to make sure the traffic signal is still active when the interrupt from comparator 82 sets latch 90 while detecting a packet is on the network
Traffic detector 72 in the OP timer also monitors traffic on the network for the puφose of detecting when the network is idle, I e , no station is currently transmitting In that situation, the traffic signal from traffic detector 72 goes low indicating the idle state Transition detector 74 detects this transition of the traffic signal, and resets timer 78 through OR 76 And the idle state of the traffic signal also controls switch 84 to pass the deferral value rather than the propagation slot value The deferral value is received from the node processor 16 (FIG 2A) The deferral value is set to one of a plurality of values depending on conditions on the network and at the local node as will be described hereinafter In any event with switch 84 now passing the deferral value to comparator 82, the comparator generates an interrupt signal when the timer value in timer 78 equals the deferral value The interrupt event now represents a predefined amount of idle time on the network, as defined by the deferral value Latch 90 is set to idle, i e the current state of the traffic signal, by the interrupt signal from comparator 82
This idle state is read from latch 90 by the node control processor 16 to detect the network is idle More particularly, the setting of latch 90 to the idle state indicates to the node processor 16 that the traffic on the network has been idle for the length of time equivalent to the deferral value.
The purpose of the deferral values in the ordered persistent timer circuit of
FIG 4 is to set the order in which the node expects to gain access to the network Highest priority node would have a deferral value of zero, and with increasing deferral values the order of access of each node is specified This is illustrated more particularly in the timing diagram of FIG 9 described later herein
The network interrupt handler 46 of FIG. 2B is shown in detail in FIGS 5, composed of FIGS 5A and 5B, 6, and 7 FIG 5 illustrates the logical operations of the network interrupt handler in response to interrupts from the Ethernet controller 12 FIG 6 illustrates the operations of the network interrupt handler 46 in response to interrupts from the order persistent timer 20 FIG 7, composed of FIG 7A and 7B, illustrates the transmission schedule operations which are used to control or schedule transmissions in response to logical operations completed in FIGS 5 and 6 ln FIG 5, the network interrupt handler can respond to three interrupts from the Ethernet controller ~ transmission complete, receipt complete, or error When the interrupt is received in FIG 5, decision operation 100 checks for transmission complete, and decision operation 102 checks for receipt of an Ethernet packet being complete If both of these test operations result in a Ano@ result, then the interrupt must be for an error condition, and operation 104 logs the error The interrupt handler then expects an RX (receive) interrupt
Interrupt handlers are only invoked when an event occurs When the interrupt handler completes, the processor resumes what it was doing when the event occurred. The termination points in the operation flows shown herein indicate the next normally expected event This may or may not be the actual next event
If the Ethernet controller interrupt corresponds to completion of a transmission of an Ethernet packet, the logical operation flow branches yes from decision operation 100 to decision operation 106 Decision operation 106 is testing whether or not the transmitted Ethernet packet was an isochronous channel transmission If it was an isochronous channel transmission, then the operation flow branches Ayes@ to schedule the next transmission The scheduling of transmissions is handled in FIG 7 descπbed hereinafter
If the transmission complete interrupt was not an isochronous channel transmission, then the operation flow branches Ano@ from decision operation 106 to decision operation 108 A non-isochronous channel transmission means that transmission of an asynchronous Ethernet packet has taken place Decision operation 108 is testing whether a collision occurred during that transmission As will be described hereinafter, the control of asynchronous transmission is adaptive P- persistent control Since the asynchronous transmission is not under ordered persistent control, it is possible that collisions will occur Depending on whether a collision occurred during asynchronous transmission, the P variable will be increased or decreased If there was no collision, P is increased If there was a collision, P is decreased The quotient 1/P represents an estimate of the number ot stations on the network that are attempting to transmit simultaneously during the asynchronous portion ofthe frame After P is increased or decreased, the operation flow proceeds to FIG 7 to schedule the next transmission
If the interrupt from the Ethernet controller represents completion of the receipt of an Ethernet packet, the operation flow passes to decision operation 1 14 There are three possible Ethernet packets An isochronous packet, an asynchronous channel packet and a beat packet
FIG 8 illustrates the format of a network frame in a preferred embodiment of the invention The frame begins with a beat packet 1 16 The beat packet is followed by a plurality of isochronous data packets 1 18 The isochronous data packets are followed by asynchronous data packets 120, and the asynchronous data packets are followed by an idle network test peπod 122
Returning to FIG 5, if decision operation 1 14 detects that an isochronous data packet has been received, then the operation flow branches to decision operation 124 Decision operation 124 is testing whether or not the isochronous data packet has an address that the node has been configured to receive If the address matches, queuing module 126 queues the isochronous data packet into the isochronous FIFO buffer 41 (FIG 2B) On the other hand, if there is no channel address match, then the isochronous data packet is discarded by operation 128 In either case, after the isochronous data packet is queued or discarded, the network interrupt handler 46 then expects the next RX interrupt ln the event the Ethernet packet received is not an isochronous data packet, decision 1 14 branches the operation flow to decision operation 130
Decision operation 130 is testing whether the packet that is not an isochronous data packet is a beat packet If the data packet is not a beat packet, it must be an asynchronous data packet In that event, the operation flow branches Ano@ from decision operation 130 to queue module 132 Queue module 132 queues the asynchronous data packet in FIFO buffer 42 (FIG 2B) If the data packet is a beat packet, then decision operation 130 branches the operation flow to step 134 At step 134, if the node is a slave node, clock module 34 (FIG 2A) is advanced to the time indicated by the beat packet frame number Clear operation 136 then clears the frame traffic counter The frame traffic counter counts the number of Ethernet packets received since the last beat packet The count is reset to zero each time a beat packet is received After the local clock has been updated, the local isochronous data packets queued for transmission in FIFO 43 are checked against the local clock Each isochronous data packet carries a time stamp If the isochronous data packet is stale, i e the local clock has advanced past the time stamp in the isochronous data packet awaiting transmission, then the isochronous data packet is discarded from the FIFO queue 43 (FIG 2B) Discard module 138 carries out these operations of comparing the time stamp to the local clock and discarding stale isochronous data packets from queue 43
This completes the maintenance functions associated with receiving a beat packet After step 138, the operations for setting up the transmission of isochronous data packets begin Decision operation 140 checks to see if there is a transmission channel match between any entry in the permission list in the beat packet and the present node
As shown in FIG 3, the beat packet contains a isochronous permission list starting at byte #15 in the beat packet The number of isochronous channels that will be transmitted in the frame is defined by the isochronous channel count stored at byte #14 in the beat packet Accordingly, the count in byte #14 indicates how many isochronous channel permissions will be listed in the list staπing at byte # 1 5 Each entry in the isochronous permission list is 6 bytes long The entry contains the intended destination address of transmissions for that channel
Referring briefly again to FIG 2B, conductor 56 at the conductor station, builds the permission list, as hereinafter described, from reservation requests from other stations and from its own node control processor 16 When a channel has a message originating at a slave station, the slave station generates an Ethernet packet having a source address and a destination address plus the isochronous data This packet is stored in the FIFO 43 of the slave station awaiting transmission The slave station generates a reservation request from the supervisor 54 which is stored in the asynchronous data queue 44 When the slave station sends the reservation request from FIFO 44 over to the conductor station, the conductor 56 can then build the permission list in the next beat packet
Returning now to FIG 5, the decision operation 140 is detecting whether or not there is a transmission channel match between the contents of an isochronous data packet in queue 42 and an entry on the permission list in the beat packet just received More particularly, decision 140 is looking for a match between the destination address in the packet at the head of TX queue 43, and the destination address in one of the entries of the permission list in the beat packet If there is a match, then operation 142 detects the position on the permission list, and sets the deferral value in accordance with the position on the permission list If there is no match, then operation 144 sets the deferral value to a maximum value The deferral value is equal to a deferral number, I e , the position on the permission list, multiplied by 512
FIG 9 is a timing diagram for an example of three nodes, or stations, operating in accordance with the invention The relative timing of packets in FIG
9 illustrate the relationship of channels, beat packets, isochronous data packets, asynchronous data packets and deferral values for multiple stations or nodes The beat packet permission list 147 contains four entries on the permission list specifying the sequence of transmission of isochronous data packets from the stations Station I is the conductor station and sends the beat packet with the permission list ln the beat packet permission list, station two has first position, station three which intends to transmit two channels has second and fourth positions, and station one has third position These positions on the permission list equate to a deferral number of zero for station two deferral numbers one and three for the two channels respectively at station three, and deferral number two for the channel at station number one To arrive at the deferral value, the deferral number is multiplied times 512 Thus, the deferral value for station two is zero, for station one is 1,024, and for the two channels at station three, 512 and 1,536, respectively
As described earlier with reference to FIG 4, these deferral values control when the OP timer generates an interrupt under idle network conditions
FIG 6 illustrates the operations in the network interrupt handler 46 (FIG 2B) in response to an event detected at the OP timer 20 (Fig 2B) When an OP timer interrupt is generated at OP timer 20, decision operation 146 detects whether the network was active or idle at the exact time of the event If the network is active, this indicates another channel or packet is being transmitted The operation flow branches Ayes@ in this event from decision 146 to schedule the next transmission using the transmission scheduling routine in FIG 7 If the network is idle, the operation flow branches from decision operation 146 to step 148 An idle condition detected at step 146 indicates the deferral value or interval has expired After the idle state is detected, step 148 disables the OP timer, and step 150 initiates the deferred transmission of a data packet marked in operation 162 or operation 174 of FIG 7 After the deferred transmission is initiated, the interrupt handler expects a transmission (TX) complete interrupt
The transmission scheduling module in the network interrupt handler is shown in FIG 7 The scheduling module is called from either FIG 5 or FIG 6 The logical operations of the scheduling module begin at operation 152 which increments the frame traffic counter by one The frame traffic counter counts the number of packets transmitted on the network since the beginning ofthe frame,
I e , since the receipt ofthe beat packet The frame traffic counter was reset or cleared in operation 136 (FIG 5) Traffic counter 152 is incremented each time the station in which the traffic counter is located transmits an Ethernet packet or each time the OP timer at the station detects transmission of a packet bv another station
After the frame traffic counter is incremented, decision operation 154 detects whether the total number of packets counted for the frame exceeds a frame total as specified by the beat packet in the packets per frame at byte # 12 If decision step 154 detects that the total number of packets counted exceeds the frame total specified in the beat packet, then no further packets should be transmitted Accordingly, the operation flow branches Ayes@ from decision operation 154 to disable operation 156 Disable operation 156 disables the OP timer which effectively stops any further transmission of packets from the station If the frame traffic count does not exceed the frame total, then the operation flow branches from decision 154 to decision operation 158
Decision operation 158 is testing whether the isochronous data transmission FIFO 43 in FIG 2B is empty In other words, have all of the isochronous data packets from the station already been transmitted7 If so, the operation flow branches from operation 158 to decision operation 160 Decision operation 160 is testing whether the asynchronous data transmission queue 44 is empty If all ofthe asynchronous data packets from the station have also already been transmitted, then the operation flow branches yes from decision operation 160 to step 156 to disable the OP timer The network interrupt handler then expects the next RX interrupt If there is an isochronous data packet queued for transmission in FIFO queue 43 (FIG 2B), then the operation flow branches Ano@ from decision operation 158 to mark operation 162 Operation 162 marks the deferred isochronous data packet at the top ofthe queue 43 for transmission Then, step 164 generates the current deferral number for the deferred isochronous data packet marked by step 162 The current deferral number is found by updating the packet's original deferral number The original deferral number is specified by the channel=s position, 0, 1, 2, 3, 4, etc , in the iso permission list in the beat packet
The current deferral number is equal to the original deferral number minus the count in the frame traffic counter Accordingly, if the original deferral number was three and the frame traffic counter is two, then the current deferral number is one
When the current deferral number is determined, decision operation 166 tests whether the current deferral number is equal to zero If it is equal to zero, then step 168 disables OP timer This insures that the OP timer will not generate an interrupt during transmission Step 170 initiates the transmission of the marked isochronous data packet at the top of the queue 43 (FIG 2B) Thereafter, the network interrupt handler expects the TX complete interrupt
If the deferral number does not equal zero as detected by decision operation 166, then the OP timer is set to the current deferral value as calculated by step 172 This is done by multiplying the current deferral number times 512 and passing the result as the deferral value to the OP timer After step 172 sets this deferral value to the OP timer, the network interrupt handler expects the next RX interrupt This completes the scheduling of an isochronous data packet transmission from a station If the isochronous data packet queue 43 is empty, then decision operation
160, as described above, checks the asynchronous data packet queue 44 If the asynchronous data packet queue 44 does contain a packet ready for transmission, the operation flow branches from decision operation 160 to step 174 ln step 174, the asynchronous data packet at the top of queue 44 is marked for transmission Decision operation 176 then tests whether the frame traffic counter value is greater than or equal to the isochronous channel count The isochronous channel count is provided in the beat packet and corresponds to the number of entries on the isochronous packet permission list, which is the number of expected isochronous channel packets to be transmitted during the frame If the count in the frame traffic counter is not greater than or equal to the isochronous channel count, then the operation flow branches Ano@ to set deferral module 178 Module 178 sets the deferral number to 2 + the isochronous channel count - the traffic count This deferral number will provide a deferral value high enough to essentially guarantee that the isochronous data packet transmissions for all channels will be completed before an asynchronous data packet is transmitted by this station If the count in the frame traffic counter is greater than or equal to the isochronous channel count then the operation flow branches Aves@ from decision 176 to decision operation 180 ln decision operation 180, logical operations 180, 182, and 184 implement a P persistent logical operation in an effort to schedule asynchronous data packet transmissions from one station channel at a time In decision module 180, a random number is generated and compared against a P value As discussed above, the P value represents the percentage or probability that another station will be transmitting By setting the deferral to a lower value, two, in step 184, the current station is going to transmit before stations setting a deferral number to a higher value, three, as in step 182 After the OP timer deferral is set to a higher value in step 182, the next expected event is an RX interrupt If the deferral value or number is set lower as in step 184, the network interrupt handler expects an OP timer interrupt This use of the OP timer to perform P persistent scheduling does not guarantee there will be no collisions in asynchronous transmissions In other words, the asynchronous transmissions are P persistent and not ordered persistent because ofthe manner in which the network interrupt handler works with the OP timer
This completes the scheduling operations performed in the network interrupt handler 46 (FIG 2B) for the network side of the FIFO buffers 41-44 On the synchronous side of the FIFO buffers, the frame interrupt handler 52 performs the logical operations illustrated in FIG 10
In FIG 10, when a timer tick is received, operation 190 advances the local clock Recall that the timer tick is from a phase lock loop and will be either locked to a reference clock if the station is operating as the conductor, 1 e a master station, or will be locked to the network clock if the station is a slave station Operation
192 checks whether the time in the local clock matches the network time If the local time matches the network time, the process flows directly to queue module
196
In the frame interrupt handler, queue module 196 queues synchronous data from the synchronous I/O and audio/video processor 50 and loads that synchronous data into TX FIFO buffer 43 (FIG 2B) Accordingly, each time there is a timer tick, synchronous data is loaded into an isochronous packet on the TX FLFO buffer
To handle received packets, operation 198 in the frame interrupt handler checks for stale isochronous data packets at the top of the queue in RX FIFO buffer 41 , i e , the next packet in queue 41 to be processed by the synchronous data processor 50 Operation 198 discards any stale data packet as it reaches the top of the RX queue This is accomplished by comparing the time stamp on the RX isochronous data packet at the top of the queue with the local clock time The RX packets are generally discarded only at start up when the network system is synchronizing itself After stale RX isochronous packets are discarded decision operation 200 tests whether there is isochronous data remaining in queue 41 If there is, the operation flow branches to operation 202 to buffer the received isochronous data packet in the synchronous I/O 68 (FIG 2B) until the destination synchronous I/O device is ready for the data If there is no queued isochronous data m buffer 41 , then step 204 buffers blank video and/or silence into synchronous I/O 68 ln either event, buffering by step 202 or buffering by step 204, the frame interrupt handler then expects the next timer tick
FIG 1 1 illustrates the logical operations performed by conductor 56 (FIG 2B) in handling an asynchronous request As discussed earlier, the conductor generates the beat packet shown in FIG 3 The beat packet contains the permission list for transmission during a frame If a channel or station wishes to get on that permission list, it sends a reservation request to the conductor through the supervisor 54 in FIG 2B
When a reservation request is received, decision operation 206 checks whether the channel is already reserved The reservation request contains the channel number, the priority ofthe channel, and the estimated bandwidth to be used by the channel If the request is for a channel that has already reserved a packet in the frame, then decision operation 206 branches yes to decision operation
208 Decision operation 208 is testing or looking for a zero bandwidth request for the channel A zero bandwidth request corresponds to turning off the channel If there is a zero bandwidth request detected, then the operation flow branches to step 210, and step 210 removes the channel from the iso permissions list in the beat packet After the channel is removed from the permission list, the request handler in the conductor is expecting the next reservation request
If decision operation 208 detects the bandwidth requested was not zero, this indicates the channel was already reserved No new channel, or no additional packet for the channel is granted The operation flow branches "no", and the conductor expects the next reservation request
If the decision operation 206 detects that the channel has not already been reserved, then decision operation 212 tests whether or not there is enough bandwidth for the new channel Operation 212 detects the ANetwork Exhausted Flag @ If the network was not detected to be exhausted, the flow branches to operation 214 Operation 214 inserts the channel into the iso permission list in the beat packet After the channel is inserted into the permission list, the operation flow returns to the conductor expecting the next reservation request If the network was detected to be exhausted, then the operation branches Ano,@ expecting the next reservation request As a result, the channel is not inserted into the permission
FIG 12 illustrates additional operations performed by the frame interrupt handler 52 (Fig 2B) in response to a timer tick event The logical operations in FIG 12 begin with the receipt of a timer tick from the master clock at the station Since the conductor is setting the timing for the network, l e conductor is only operative in the conductor station or master station, it will be receiving from its own clock the network timing Thus, the timer tick is the trigger for the operations in FIG 12 The logical operations begin by incrementing the frame number field of the beat packet image in buffer 45 at step 216 After step 216 increments the frame number of the beat packet, decision operation 218 tests whether the network exhausted flag has been set The network exhausted flag is set by the operations in
FIG 13 described hereinafter If the network exhausted flag is set. it indicates that the entire bandwidth of the network is in use
If the network exhausted flag has not been set, then the operation branches Ano@ from decision operation 218 to decision operation 220 Decision operation 220 tests whether or not the asynchronous permissions (packets per frame) have reached a maximum value for the frame The number of packets in the frame should not exceed a reasonable maximum number of packets derived from the frame rate and the network bit rate This reasonable maximum number of packets is the maximum value used in the test performed by operation 220 If the operation flow branches Ano@ from both operation 218 and operation 220, there is more space for asynchronous packets in the frame Step 222 increments by one the packets per frame in the beat packet image in buffer 45 Thereafter, the operation flow returns to clear module 224 Likewise, if the network exhausted flag has been set, or if the flag was not set but the asynchronous permissions were maximized, the operation would flow to clear module 224 also Clear module 224 clears the network exhausted flag since the flag is only active for one frame Clearing the flag prepares the conductor to handle the next frame After the network exhausted flag is cleared, operation 226 sets the OP timer for the test peπod deferral After the end of a frame, there is a test period between frames, 1 e , before the next beat packet is transmitted Step 226 sets this test period deferral value for the OP timer 20 (Fig 2B) so that the OP timer can detect that the idle state is occurring during the test period or can detect a problem in that another station is transmitting during the test period The end of frame processing in FIG 12 concludes with operation 228 which sets the end of frame (EOF) flag FIG 13 illustrates additional operations performed by the network interrupt handler 46 (Fig 2B) during an OP timer event When an OP timer interrupt is received, decision operation 229 tests whether the EOF flag has been set If not, the operation flow expects the next OP timer interrupt If the EOF flag is detected, then decision operation 230 tests whether or not the network is active or idle An idle state is expected, as all stations should have finished transmissions before the end of frame If the network is active, the operation flow branches Ayes@ to step
232 to set the network exhausted flag In other words, a station on the network is still transmitting and the network is overcommitted If the network is idle as expected, then the operation flow branches to operation 234 to transmit the beat packet from buffer 45 thus beginning the next frame
After the beat packet is transmitted, step 236 clears the EOF flag, and step 238 simulates receipt of the beat packet at the conductor station This is necessary since the beat packet is sent from the conductor station, and the conductor station needs also to act as if it had received the information in the beat packet After the receipt ofthe beat packet is simulated at the conductor station, the station enters the schedule transmission operation flow described above in FIG 7
If the network is active as detected in decision operation 230, the network exhausted flag is set at step 232, the next operation is decision operation 240 which tests whether or not the async permissions are minimized If the asynchronous permissions have already been minimized, meaning that network bandwidth exhaustion is being caused by isochronous channels filling up the frame, then the operation flow branches from decision operation 240 to remove module 242 Remove module 242 removes the lowest priority isochronous channel from the isochronous permission list After the iso channel is removed, the conductor expects the next OP timer interrupt
If on the other hand the asynchronous permissions for transmission in the frame have not been minimized, the operation flow branches Ano@ from operation 240 to operation 244 Operation 244 decrements by one the packets per frame The operation flow then expect the next OP timer interrupt
While the invention has been particularly shown and descπbed with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various other changes in the form and details may be made therein without departing from the spirit and scope of the invention
What is claimed is

Claims

1 In a communication network having a plurality of stations, media access control apparatus at each station for controlling the transmission of isochronous data in communication frames on the network, the communication frames having a portion of the frame allocated to isochronous data packets, said media access control apparatus in each station comprising
a conductor building a timing packet for transmission with each frame, the timing packet containing a reservation list indicating the sequence ot transmission of isochronous data packets in the frame
a frame interrupt handler converting input data to isochronous data packets for transmission from the station and for converting isochronous data packets received from other stations into output data,
an ordered persistent timer responsive to the reservation list and generating an interrupt when an isochronous data packet at the station is to be scheduled for transmission, and
a network interrupt handler in response to the reservation list in the timing packet and the interrupt for scheduling an isochronous data packet for transmission by the station whereby the order of transmission onto the network of isochronous data packets by stations on the network is controlled to avoid collisions
2 The media access control apparatus of claim 1 wherein said network interrupt handler operates with said ordered persistent timer to time a deferral time interval to generate the interrupt and thereby control transmission of an isochronous data packet by the station, said deferral time interval defining a time interval when other isochronous data packets in the communication frame are being transmitted on the network so that isochronous data packets from the plurality of stations do not collide 3 The media access control apparatus of 2 wherein said ordered persistent timer compπses
a detector detecting traffic on the network and generating a first signal, and
a deferral interval timer generating the interrupt in response to a deferral value based on a position of a request in the reservation list and in response to the first signal
4 The media access control apparatus of claim 1 and in addition synchronizing apparatus in each station for synchronizing synchronous input/output data at each station with network timing as defined by the timing packet, said synchronizing apparatus comprising
a local clock locked to a timing packet clock rate provided by the timing packet, and
said frame interrupt handler responsive to the local clock for converting synchronous input data synchronized with network timing to isochronous data packets for transmission from the station and for converting received isochronous data packets into synchronous output data synchronized with network timing
5 The media access control apparatus of claim 4 wherein said network interrupt handler operates with said ordered persistent timer to time a deferral time interval to generate the interrupt and thereby control transmission of an isochronous data packet by the station, said deferral time interval defining a time interval when other isochronous data packets in the communication frame are being transmitted on the network so that isochronous data packets from plurality of stations do not collide
6 The media access control apparatus of 5 wherein said ordered persistent time compπses a detector detecting traffic on the network and generating a first signal, and
a deferral interval timer generating the interrupt in response to a deferral value based on a position of a request in the reservation list and in response to the first signal
7 In a communication network having a plurality of stations for transmitting and receiving communication frames, media access control apparatus at each station for controlling the transmission of isochronous data and asynchronous data in communication frames on the network, the communication frames having a portion of the frame allocated to isochronous data packets, a portion of the frame allocated to asynchronous data packets, and a timing packet containing a reservation list indicating the sequence of transmission of isochronous data packets in the frame, said media access control apparatus in each station comprising
a frame interrupt handler converting input data to isochronous data packets for transmission from the station and for converting isochronous data packets received from other stations into output data,
a timer in response to the reservation list timing a first time interval and generating a first interrupt when an isochronous data packet is to be transmitted by the station, said first time interval defining a scheduled time for transmission of the isochronous data packet from the station, and
a network interrupt handler in response to the first interrupt releasing an isochronous data packet for transmission by the station whereby the order of transmission onto the network of isochronous data packets by stations on the network is controlled to avoid collisions
8 The media control apparatus of claim 7 and in addition said timer in response to a second time interval generating a second interrupt when an asynchronous data packet is scheduled for transmission by the station, said second time interval defining a time when transmission of isochronous data packets in the communication frame has been completed, and
said network interrupt handler in response to the second interrupt releasing an asynchronous data packet for transmission by the station whereby the asynchronous data packet is transmitted after transmission of isochronous data packets in the communication frame has been completed
9 The media access control apparatus of claim 8 and in addition
said timer operates as an ordered persistent timer during the timing of said first time interval and said second time interval and operates as an adaptive persistent timer after the timing of said second time interval
10 The media access control apparatus of claim 8 wherein said timer compπses
a detector detecting traffic on the network and generating a traffic signal, and
a deferral interval timer generating the first interrupt in response to the traffic signal and in response to a deferral value based on a position of a request in a plurality of requests in the reservation list,
said deferral interval timer generates the second interrupt in response to the traffic signal and in response to a deferral value based on the plurality of requests in the reservation list
1 1 The media access control apparatus of 7 wherein said timer comprises a detector detecting traffic on the network and generating a traffic signal, and
a deferral interval timer generating the first interrupt in response to the traffic signal and in response to a deferral value based on a position of a request in a plurality of requests in the reservation list
12 In a communication network having a plurality of stations, a media control system for synchronizing input/output data of each station with network timing and for controlling the transmission of isochronous data and asynchronous data in communication frames on the network, the communication frames having a first portion of the frame allocated to isochronous data packets and a second portion of the frame allocated to asynchronous data packets, said system comprising
a conductor at a conductor station building one or more timing packets for transmission with each frame, the timing packets containing a reservation list indicating the sequence of and the number of isochronous data packet transmission requests for the frame,
at least one station of said plurality of stations comprising
a frame interrupt handler for converting input data to isochronous data packets for transmission from the station and for converting received isochronous data packets into output data,
a supervisor converting control data into asynchronous data packets for transmission from the station and for converting received asynchronous data packets into output data,
a timer timing an active state of the network, an active state indicating a present transmission of one or more isochronous data packets on the network, and a network interrupt handler operating with said timer and in response to the sequence of requests in the reservation l ist to control the sequence of transmission of the isochronous data packet from the station with other isochronous data packets transmitted on the network and in response to the number of requests in the reservation list to control the transmission of the asynchronous data packet from the station
1 3 The system of claim 1 2 wherein said timer times a deferral time based on the sequence of requests i n the reservation list to control transmission of a packet bv said station so that isochronous data packets from the plurality of stations are transmitted in sequence and do not collide
14 The system of claim 1 2 also synchronizing input/output data of each station with network timing and further comprising
said conductor station transmitting the timing packet at a clock rate of a local clock at the conductor station,
at least one station of said plurality of stations further comprising
Λ local clock locked to an arrival time of said tim ing packet and
said frame interrupt handler responsive to the local clock converting synchronous input data synchronized with the local clock to isochronous data packets and for converting received isochronous data packets into synchronous output data synchronized with the local clock
15 The system of claim 12 wherein said at least one station further comprises a memory buffer coupled to said network interrupt handler and said frame interrupt handler for storing therebetween said isochronous data packets and said asynchronous data packets
16 The system of claim 12, wherein said at least one station further comprises
a controller, coupled to said timer and said network interrupt handler, for controlling the transmission and receipt of said isochronous data packets and said asynchronous data packets of the network
1 7 The system of claim 16, wherein said at least one station further comprises
a transceiver, coupled to said timer and said controller, for transmitting and receiving said isochronous data packets and said asynchronous data packets to and from the network
18 In a communication network having a plurality of stations, media access control apparatus at each station for controlling the transmission and receipt of isochronous data and asynchronous data in communication frames on the network, the communication frames having a portion of the frame allocated to isochronous data packets and a portion of the frame allocated to asynchronous data packets, said media access control apparatus comprising
a conductor building a timing packet for transmission with each frame, the timing packet containing a reservation list indicating sequence of transmission of isochronous data packets in the frame,
an ordered persistent timer detecting an active state and an idle state of the network, the network being in the active state when a station is transmitting and being in the idle state when no station is transmitting, said ordered persistent timer timing deferral time intervals during the idle state and generating an interrupt to schedule transmission of a data packet by the station, said deferral time intervals based on the reservation list in the timing packet, and
a network interrupt handler responsive to the interrupt to control the time of transmission of isochronous data packets and asynchronous data packets on said network whereby in a given frame isochronous data packets from a plurality of stations do not collide on the network and asynchronous data packets are transmitted to the extent there is space remaining in the frame
19 The media access control apparatus of claim 18 wherein said ordered persistent timer comprises
a detector detecting transmission of data on the network to detect the active state and the idle state,
an interval timer timing intervals in the active state and the idle state,
said interval timer during the idle state timing a deferral time interval based on a position of a transmission request in the reservation list and generating an interrupt if the deferral time interval times out, and
said detector resetting said interval timer before the deferral time interval times out if said detector detects a change from the idle state to the active state during the timing of the deferral time interval
20 The media access control apparatus of claim 19 wherein
said network interrupt handler in response to the interrupt initiates transmission of an isochronous data packet on the network whereby the isochronous data packet transmitted from the station does not collide with another isochronous data packet 21 The media access control apparatus of claim 20 and in addition
said timer timing a predefined interval of time during the active state and generating a update interrupt when the predefined interval times out, and
said network interrupt handler in response to the update interrupt generating an updated deferral time interval for an isochronous data packet whose previous deferral time interval did not time out before said timer was reset
22 The media access control apparatus of claim 21 and in addition
said timer during an idle state timing the updated deferral time interval and generating the interrupt if said updated deferral time interval times out before said detector detects the change to active state and resets said timer
23 The media access control apparatus of claim 18 wherein the reservation list indicates the number of isochronous data packets in the frame, the deferral time interval for an isochronous data packet is based on a position of a transmission request in the reservation list, the deferral time interval for transmission of an asynchronous data packet is based upon the number of isochronous data packets in the frame, and said ordered persistent timer comprises
a detector detecting transmission of data on the network to detect the active state and the idle state,
an interval timer timing intervals in the active state and the idle state,
said interval timer during the idle state timing a deferral time interval and generating an interrupt if the deferral time interval times out, said detector resetting said timer before the deferral time interval times out if said detector indicates a transition to an active state during the deferral time interval
24 The media access control apparatus of claim 23 and in addition
said network interrupt handler in response to the interrupt initiates transmission of a data packet on the network
25 The media access control apparatus of claim 24 and in addition
said interval timer timing a predefined interval of time during the active state and generating an update interrupt when the predefined interval times out, and
said network interrupt handler in response to the update interrupt generating an updated deferral time interval for a data packet whose previous deferral time interval did not time out before said timer was reset
26 The media access control apparatus of claim 25 and in addition
said interval timer during an idle state timing the updated deferral time interval and generating the interrupt if said updated deferral time interval times out before said detector detects the change to active state and resets said timer
PCT/US1997/005962 1996-04-12 1997-04-10 Media access control for isochronous data packets in carrier sensing multiple access systems WO1997039556A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU24533/97A AU2453397A (en) 1996-04-12 1997-04-10 Media access control for isochronous data packets in carrier sensing multiple access systems
EP97920307A EP0832530A1 (en) 1996-04-12 1997-04-10 Media access control for isochronous data packets in carrier sensing multiple access systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/630,066 US5761430A (en) 1996-04-12 1996-04-12 Media access control for isochronous data packets in carrier sensing multiple access systems
US08/630,066 1996-04-12

Publications (1)

Publication Number Publication Date
WO1997039556A1 true WO1997039556A1 (en) 1997-10-23

Family

ID=24525614

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/005962 WO1997039556A1 (en) 1996-04-12 1997-04-10 Media access control for isochronous data packets in carrier sensing multiple access systems

Country Status (4)

Country Link
US (2) US5761430A (en)
EP (1) EP0832530A1 (en)
AU (1) AU2453397A (en)
WO (1) WO1997039556A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0913969A1 (en) * 1997-10-30 1999-05-06 Alcatel Method, arrangement and communication system for upstream timeslot assignment
WO2000018108A2 (en) * 1998-08-18 2000-03-30 Tivo, Inc. Method and apparatus implementing a multimedia digital network
EP1082665A1 (en) * 1998-05-28 2001-03-14 Motorola, Inc. Offered load estimation and applications for using same in a communication network
EP1111846A1 (en) * 1999-06-08 2001-06-27 Sony Corporation Communication method, communication system, and communication terminal
WO2002001785A1 (en) 2000-06-27 2002-01-03 Cirrus Logic, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
US6859464B2 (en) 1999-08-27 2005-02-22 Motorola, Inc. Method and device for controlling outliers in offered load estimation in a shared medium communication network
US6993042B1 (en) * 1999-12-28 2006-01-31 Fujitsu Limited LAN interface apparatus and a method of controlling the transmission and reception of a frame
WO2012151323A3 (en) * 2011-05-02 2013-03-14 Apple Inc. Methods and apparatus for isochronous data delivery within a network
EP2814013A3 (en) * 2004-08-20 2015-03-04 Sony Electronics Inc. Isochronous transmission for IP-oriented network

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631435B1 (en) * 1996-02-02 2003-10-07 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US7577782B2 (en) 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5991520A (en) 1996-02-02 1999-11-23 Sony Corporation Application programming interface for managing and automating data transfer operations between applications over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US5946466A (en) * 1996-11-26 1999-08-31 International Business Machines Corporation System and method for deterministic response to audio/video commands in a multimedia system
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US6172984B1 (en) 1997-06-19 2001-01-09 Siemens Information And Communication Networks, Inc. System and method for reducing the latency for time sensitive data over CSMA/CD networks
US5960001A (en) * 1997-06-19 1999-09-28 Siemens Information And Communication Networks, Inc. Apparatus and method for guaranteeing isochronous data flow on a CSMA/CD network
US6292844B1 (en) 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
JPH11261609A (en) * 1998-03-11 1999-09-24 Fujitsu Ltd Data preferential transmission method/device in csma/cd system
US6532019B1 (en) 1998-06-17 2003-03-11 Advanced Micro Devices, Inc. Input/output integrated circuit hub incorporating a RAMDAC
US6151651A (en) * 1998-06-17 2000-11-21 Advanced Micro Devices, Inc. Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system
US6202116B1 (en) 1998-06-17 2001-03-13 Advanced Micro Devices, Inc. Write only bus with whole and half bus mode operation
US6148357A (en) * 1998-06-17 2000-11-14 Advanced Micro Devices, Inc. Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes
US6199132B1 (en) 1998-06-17 2001-03-06 Advanced Micro Devices, Inc. Communication link with isochronous and asynchronous priority modes
US6032211A (en) * 1998-06-17 2000-02-29 Advanced Micro Devices, Inc. Method of mode control in a bus optimized for personal computer data traffic
US6483846B1 (en) 1998-07-10 2002-11-19 Honeywell Inc. Middleware-based real-time communication system
GB2339653B (en) * 1998-07-14 2003-06-04 Ibm Multiple synchronous data stream format for an optical data link
US20040208158A1 (en) 1998-08-19 2004-10-21 Fellman Ronald D. Methods and apparatus for providing quality-of-service guarantees in computer networks
US6215797B1 (en) 1998-08-19 2001-04-10 Path 1 Technologies, Inc. Methods and apparatus for providing quality of service guarantees in computer networks
US6246702B1 (en) 1998-08-19 2001-06-12 Path 1 Network Technologies, Inc. Methods and apparatus for providing quality-of-service guarantees in computer networks
US6336179B1 (en) 1998-08-21 2002-01-01 Advanced Micro Devices, Inc. Dynamic scheduling mechanism for an asynchronous/isochronous integrated circuit interconnect bus
US6266702B1 (en) 1998-09-28 2001-07-24 Raytheon Company Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data
US6317415B1 (en) 1998-09-28 2001-11-13 Raytheon Company Method and system for communicating information in a network
US6381647B1 (en) 1998-09-28 2002-04-30 Raytheon Company Method and system for scheduling network communication
US6167471A (en) 1998-10-14 2000-12-26 Sony Corporation Method of and apparatus for dispatching a processing element to a program location based on channel number of received data
US6611891B1 (en) 1998-11-23 2003-08-26 Advanced Micro Devices, Inc. Computer resource configuration mechanism across a multi-pipe communication link
US6457084B1 (en) 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Target side distributor mechanism for connecting multiple functions to a single logical pipe of a computer interconnection bus
US6690676B1 (en) 1998-11-23 2004-02-10 Advanced Micro Devices, Inc. Non-addressed packet structure connecting dedicated end points on a multi-pipe computer interconnect bus
US6499079B1 (en) 1998-11-23 2002-12-24 Advanced Micro Devices, Inc. Subordinate bridge structure for a point-to-point computer interconnection bus
US6457081B1 (en) 1998-11-23 2002-09-24 Advanced Micro Devices, Inc. Packet protocol for reading an indeterminate number of data bytes across a computer interconnection bus
US6421751B1 (en) 1998-11-23 2002-07-16 Advanced Micro Devices, Inc. Detecting a no-tags-free condition in a computer system having multiple outstanding transactions
US6470410B1 (en) 1998-11-23 2002-10-22 Advanced Micro Devices, Inc. Target side concentrator mechanism for connecting multiple logical pipes to a single function utilizing a computer interconnection bus
US6618782B1 (en) 1998-11-23 2003-09-09 Advanced Micro Devices, Inc. Computer interconnection bus link layer
US6760308B1 (en) 1999-02-26 2004-07-06 Bitbytebit Information Services, Inc. Adaptive transmission in multi-access asynchronous channels
DE60031519T2 (en) * 1999-05-11 2007-06-21 British Telecommunications P.L.C. COMMUNICATION NETWORK
US6247069B1 (en) 1999-05-12 2001-06-12 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US6859846B2 (en) 1999-05-12 2005-02-22 Sony Corporation Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device
US6446192B1 (en) * 1999-06-04 2002-09-03 Embrace Networks, Inc. Remote monitoring and control of equipment over computer networks using a single web interfacing chip
WO2001015384A2 (en) * 1999-08-20 2001-03-01 Siemens Aktiengesellschaft System and method for the transmission of information between communication participants via a field bus
US7023833B1 (en) 1999-09-10 2006-04-04 Pulse-Link, Inc. Baseband wireless network for isochronous communication
US6721859B1 (en) 1999-10-21 2004-04-13 Sony Corporation Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data
US7088795B1 (en) 1999-11-03 2006-08-08 Pulse-Link, Inc. Ultra wide band base band receiver
US6523108B1 (en) 1999-11-23 2003-02-18 Sony Corporation Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string
DE60018799T2 (en) * 1999-12-23 2006-01-26 Cetacean Networks, Inc. NETWORK TRANSMISSION WITH PACKAGE CONTROL
US6574225B2 (en) * 2000-04-07 2003-06-03 Omneon Video Networks Clock recovery in a packet-based data network
US6738962B1 (en) * 2000-06-12 2004-05-18 Altera Corporation Configuration and/or reconfiguration of integrated circuit devices that include programmable logic and microprocessor circuitry
US6970448B1 (en) * 2000-06-21 2005-11-29 Pulse-Link, Inc. Wireless TDMA system and method for network communications
US6952456B1 (en) 2000-06-21 2005-10-04 Pulse-Link, Inc. Ultra wide band transmitter
US7720821B1 (en) 2000-06-30 2010-05-18 Sony Corporation Method of and apparatus for writing and reading time sensitive data within a storage device
DE10038155A1 (en) * 2000-08-04 2002-02-21 Siemens Ag Method for cyclical bus transfer exchanges data between individual communications subscribers in cycles according to projected communications connections between the subscribers.
US6470031B1 (en) * 2000-09-05 2002-10-22 Coactive Networks, Inc. Method and apparatus for accurate packet time stamping
KR100442469B1 (en) * 2000-09-08 2004-07-30 조재형 A Linear Medium Sequential Access Control (LMSAC) Method for High-Speed Asynchronous Data Transmission
US7327754B2 (en) * 2000-09-28 2008-02-05 Teridian Semiconductor, Corp. Apparatus and method for freezing the states of a receiver during silent line state operation of a network device
US6904475B1 (en) 2000-11-06 2005-06-07 Sony Corporation Programmable first-in first-out (FIFO) memory buffer for concurrent data stream handling
DE10059646B4 (en) * 2000-12-01 2005-06-30 Siemens Ag Transmission of messages over a bus structure
EP1220494B1 (en) * 2000-12-28 2004-02-11 Alcatel Method for allocating a bandwidth between network terminals in a communication network and network including a medium access controller for performing such a method
KR100555664B1 (en) * 2001-01-08 2006-03-03 삼성전자주식회사 Wireless communication apparatus, wireless communication system employing the same and the method thereof
US20020147832A1 (en) * 2001-04-05 2002-10-10 Ylian Saint-Hilaire Framing and processing messages
US7000025B1 (en) * 2001-05-07 2006-02-14 Adaptec, Inc. Methods for congestion mitigation in infiniband
US7124292B2 (en) * 2001-05-21 2006-10-17 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US6965933B2 (en) * 2001-05-22 2005-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for token distribution
DE60223530T2 (en) * 2001-06-05 2008-11-27 Cetacean Networks, Inc. REAL-TIME NETWORK PACKAGE PROCESSING SYSTEM WITH FLOW PLANNING
US7486693B2 (en) * 2001-12-14 2009-02-03 General Electric Company Time slot protocol
US7447228B1 (en) * 2002-03-15 2008-11-04 Nortel Networks Limited Technique for delivering bursted native media data flows over an ethernet physical layer
US7103006B2 (en) * 2002-05-01 2006-09-05 International Business Machines Corporation Method, system, and article of manufacture for data transmission
US7555017B2 (en) * 2002-12-17 2009-06-30 Tls Corporation Low latency digital audio over packet switched networks
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
US7411919B2 (en) * 2003-03-17 2008-08-12 University Of Rochester Multi-hop time reservation using adaptive control for energy efficiency
US7764706B2 (en) * 2003-03-20 2010-07-27 University Of Rochester Time reservation using adaptive control for energy efficiency
US7499403B2 (en) * 2003-05-07 2009-03-03 Alcatel-Lucent Usa Inc. Control component removal of one or more encoded frames from isochronous telecommunication stream based on one or more code rates of the one or more encoded frames to create non-isochronous telecommunications stream
US7079609B2 (en) * 2003-07-31 2006-07-18 Motorola, Inc. Method and apparatus for reducing interference within a communication system
US20050100023A1 (en) * 2003-11-07 2005-05-12 Buckwalter Paul B. Isochronous audio network software interface
EP1721410A2 (en) * 2004-03-05 2006-11-15 Nextnet Wireless, Inc. Method and apparatus for isochronous datagram delivery over contention-based data link
US8078298B2 (en) * 2004-03-26 2011-12-13 Harman International Industries, Incorporated System for node structure discovery in an audio-related system
KR101085677B1 (en) * 2005-04-26 2011-11-22 삼성전자주식회사 Periodic Synchronus Method For Start of Super-Frame in Residential Ethernet
US20080065925A1 (en) * 2006-09-08 2008-03-13 Oliverio James C System and methods for synchronizing performances of geographically-disparate performers
US8307030B1 (en) * 2010-04-20 2012-11-06 Juniper Networks, Inc. Large-scale timer management
US9251284B2 (en) * 2010-12-02 2016-02-02 Microsoft Technology Licensing, Llc Mixing synchronous and asynchronous data streams
US8699646B2 (en) 2011-04-18 2014-04-15 Harman International Industries, Inc. Media clock negotiation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0580016A2 (en) * 1992-07-23 1994-01-26 Alcatel SEL Aktiengesellschaft Bus system for a local area network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5229993A (en) * 1991-02-25 1993-07-20 Old Dominion University Control of access through local carrier sensing for high data rate networks and control of access of synchronous messages through circulating reservation packets
US5361261A (en) * 1992-11-02 1994-11-01 National Semiconductor Corporation Frame-based transmission of data
US5528513A (en) * 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5553071A (en) * 1994-10-14 1996-09-03 Lucent Technologies Inc. Communication system topology providing dynamic allocation of B-channels

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0580016A2 (en) * 1992-07-23 1994-01-26 Alcatel SEL Aktiengesellschaft Bus system for a local area network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHARROCK S M ET AL: "A CSMA/CD-BASED, INTEGRATED VOICE/DATA PROTOCOL WITH DYNAMIC CHANNEL ALLOCATION", COMPUTER NETWORKS AND ISDN SYSTEMS, vol. 18, no. 1, 24 November 1989 (1989-11-24), pages 1 - 18, XP000070488 *
WEI-HONG CHEN ET AL: "CSMA/CD/TDMA:A DYNAMIC COMBINATION FOR VOICE AND DATA INTEGRATION", 3 June 1990, MULTIPLE FACETS OF INTEGRATION, SAN FRANCISCO, JUNE 3 - 7, 1990, VOL. VOL. 3, NR. CONF. 9, PAGE(S) 842 - 849, INSTITUTE OF ELECTRICAL AND ELECTRONIC ENGINEERS, XP000164303 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6310886B1 (en) 1997-08-28 2001-10-30 Tivo, Inc. Method and apparatus implementing a multimedia digital network
EP0913969A1 (en) * 1997-10-30 1999-05-06 Alcatel Method, arrangement and communication system for upstream timeslot assignment
US6298049B1 (en) 1997-10-30 2001-10-02 Alcatel Method and arrangement for upstream timeslot assignment, and communication system wherein the method is used
EP1082665A1 (en) * 1998-05-28 2001-03-14 Motorola, Inc. Offered load estimation and applications for using same in a communication network
EP1082665A4 (en) * 1998-05-28 2001-08-16 Motorola Inc Offered load estimation and applications for using same in a communication network
KR100397718B1 (en) * 1998-05-28 2003-09-17 모토로라 인코포레이티드 Offered load estimation and applications for using same in a communication network
WO2000018108A2 (en) * 1998-08-18 2000-03-30 Tivo, Inc. Method and apparatus implementing a multimedia digital network
WO2000018108A3 (en) * 1998-08-18 2001-01-18 Tivo Inc Method and apparatus implementing a multimedia digital network
EP1111846A1 (en) * 1999-06-08 2001-06-27 Sony Corporation Communication method, communication system, and communication terminal
US7352735B1 (en) 1999-06-08 2008-04-01 Sony Corporation Communication method, communication system, and communication terminal
EP1111846A4 (en) * 1999-06-08 2006-06-14 Sony Corp Communication method, communication system, and communication terminal
US6859464B2 (en) 1999-08-27 2005-02-22 Motorola, Inc. Method and device for controlling outliers in offered load estimation in a shared medium communication network
US6993042B1 (en) * 1999-12-28 2006-01-31 Fujitsu Limited LAN interface apparatus and a method of controlling the transmission and reception of a frame
EP1302011A1 (en) * 2000-06-27 2003-04-16 Cirrus Logic, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
EP1302011A4 (en) * 2000-06-27 2006-10-25 Cirrus Logic Inc Media access control for isochronous data packets in carrier sensing multiple access systems
WO2002001785A1 (en) 2000-06-27 2002-01-03 Cirrus Logic, Inc. Media access control for isochronous data packets in carrier sensing multiple access systems
EP2814013A3 (en) * 2004-08-20 2015-03-04 Sony Electronics Inc. Isochronous transmission for IP-oriented network
WO2012151323A3 (en) * 2011-05-02 2013-03-14 Apple Inc. Methods and apparatus for isochronous data delivery within a network
US10992404B2 (en) 2011-05-02 2021-04-27 Apple Inc. Methods and apparatus for isochronous data delivery within a network

Also Published As

Publication number Publication date
EP0832530A1 (en) 1998-04-01
US6161138A (en) 2000-12-12
AU2453397A (en) 1997-11-07
US5761430A (en) 1998-06-02

Similar Documents

Publication Publication Date Title
US5761430A (en) Media access control for isochronous data packets in carrier sensing multiple access systems
US5761431A (en) Order persistent timer for controlling events at multiple processing stations
US6339584B1 (en) Media access control for isochronous data packets in carrier sensing multiple access systems
EP0054077B1 (en) Method of transmitting information between stations attached to a unidirectional transmission ring
EP0241113B1 (en) Traffic scheduler for multiple access communication channels
US4858232A (en) Distributed switching system
US5081622A (en) Method and apparatus for distributed queue multiple access in a communication system
US6128310A (en) Multiport data network switch having a random number generator shared by multiple media access controllers
US5884040A (en) Per-packet jamming in a multi-port bridge for a local area network
US5136582A (en) Memory management system and method for network controller
KR101106941B1 (en) Method, apparatus and system for guaranteed packet delivery times in asynchronous networks
US4644533A (en) Packet switch trunk circuit queueing arrangement
US4445116A (en) Method for allocating bandwidth between stations in a local area network
US4404557A (en) Timed token ring with multiple priorities
US5210750A (en) Method and apparatus for distributed queue multiple access in a communication system
US4538147A (en) Bandwidth allocation in a token controlled loop communications network
JPH0716200B2 (en) Communication network access method and device
US6591316B1 (en) Avoiding fragmentation loss in high speed burst oriented packet memory interface
US20020136229A1 (en) Non-blocking crossbar and method of operation thereof
AU622698B2 (en) Access protection and priority control in distributed queueing
Yu The Twin-Bus-Controller protocol for fiber optic communication networks
JP2001077796A (en) Transmission system, transmitter and receiver

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM

WWE Wipo information: entry into national phase

Ref document number: 1997920307

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1997920307

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 97537208

Format of ref document f/p: F

NENP Non-entry into the national phase

Ref country code: CA

WWW Wipo information: withdrawn in national office

Ref document number: 1997920307

Country of ref document: EP