US6327253B1 - Method and apparatus for controlling switching of connections among data processing devices - Google Patents
Method and apparatus for controlling switching of connections among data processing devices Download PDFInfo
- Publication number
- US6327253B1 US6327253B1 US09/054,863 US5486398A US6327253B1 US 6327253 B1 US6327253 B1 US 6327253B1 US 5486398 A US5486398 A US 5486398A US 6327253 B1 US6327253 B1 US 6327253B1
- Authority
- US
- United States
- Prior art keywords
- data
- switch
- devices
- packet
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/268—Signal distribution or switching
Definitions
- the present invention is related to mechanisms for controlling the switching of connections among data processing devices, particularly video processing devices.
- Analog motion video signals such as those used in common television sets, video tape recorders and other analog video systems, are temporally continuous and synchronous signals requiring various elements in a video system to be synchronized in order to be used.
- analog motion video signals have a predetermined and fixed rate to which all of the elements in the video system are synchronized. Any element in the video system is designed with the assumption that there will be a constant rate for input and output of motion video information.
- Streaming is based on an assumption that a system can provide an average data flow rate that is the same as the ultimate data flow rate needed to ensure temporally continuous output of analog motion video images to a viewer. Sufficient buffering is used to account for expected latencies in data transfer between elements. In some cases, both the temporal and spatial resolution of the motion video information may need to be reduced.
- Such systems typically are designed with the assumption that transfer of audio and video data from a source through several processing elements to its ultimate destination can neither be delayed nor stopped.
- a data decompressor outputs data into a first buffer, from which it is transferred to a second buffer associated with a special effects processor.
- the first buffer indicates whether valid data is available.
- the special effects processor indicates to a controller associated with the decompressor whether it can receive data based on memory in the second buffer.
- Video processing devices also generally are designed to provide a single output stream based on a combination of inputs.
- interconnections In order to provide connectivity among multiple devices, such interconnections generally are provided statically by a computer network or video switcher. Such mechanisms generally do not provide a way to control data flow through the switch for multiple dynamically configured connections.
- the switch may be a circuit switch, such as a crossbar switch, or a packet switch or a memory.
- the switch may be a separate device or may be part of either an input section or an output section of a data processing device.
- the configuration of the switch may be defined by command data loaded from a central controller, host computer, or other device connected to the switch, such as a sending device or a receiving device with a full duplex connection to the switch.
- the loading of a new configuration in the switch may be controlled by command data from a sending device, receiving device, or host computer, or by a controller that is responsive to a boundary signal transmitted over the interconnect.
- a packet switch a packet is directed to an output port specified in an address field in the packet.
- the packet switch directs both requests for data and the data between processing devices.
- data may be written into or read from different areas of a memory by different devices. Through a separate channel, devices communicate about the information stored into and read from the memory. Switching is performed by a device selecting a memory into which data is written or from which data is read.
- a switching system dynamically configures connections between devices which control flow of data between the devices.
- the switching system includes an input for receiving data and a plurality of outputs to which data received through the input is directed.
- a switch directs data from the input to one of the plurality of outputs in response to command data.
- Flow control information is directed between the devices for controlling the flow of data between connected devices.
- the switching system ensures that flow of data between connected devices completes prior to changing connections between the devices by the switch.
- the switching system has a plurality of inputs for receiving data and an output to which data received through the inputs is directed.
- a switch directs data from one of the inputs to the output in response to command data.
- Flow control information is directed between the devices for controlling the flow of data between connected devices. The switching system ensures that flow of data between interconnected devices completes prior to changing connections between the devices by the switch.
- the switch is a circuit switch.
- the flow control information between the devices includes a request signal from a first device, which is directed to a second device.
- a valid data signal may be received from the second device, which is directed to the first device.
- Connections between the devices are changed by the switch in response to a signal from the first device or the second device.
- the switch is a packet switch.
- Flow control information is directed between the devices by conveying a request packet from a first device to a second device for indicating a channel and an amount of data requested from the second device, and by conveying a data packet from the second device to the first device indicating an amount of valid data. Connections among the devices are established by conveying data packets with an indication of a destination device and by routing data packets among devices according to the indication of the destination device in the packet.
- the switch is a memory device.
- Flow control information is directed between the devices by using a first flow control channel connected between a first device and a second device, and a second flow control channel connected between the first device and a third device.
- aspects of the invention include processes for controlling switching such as performed by the switching system, and the various embodiments of the process.
- Systems of interconnected devices using switching systems in the various embodiments also are aspects of the invention.
- Another aspect of the invention is a video processing system in which different video processing devices are interconnected using a switching system to provide routing of video data for different and dynamically configurable video processing functions.
- FIG. 1 is a schematic diagram illustrating data transferred between a sending device and a receiving device over an interconnect
- FIG. 2 is a block diagram of a system using a switch to connect multiple sender and receiver devices
- FIG. 3 is a block diagram of a system in which multiple devices are connected through time division multiplexing and a switch;
- FIG. 4 is a block diagram of an example configuration of devices interconnected through multiple switches
- FIGS. 5A-5C are block diagrams of example packet transceivers used in a switching configuration
- FIG. 6 is a block diagram of one embodiment of a memory switch
- FIG. 7 is a block diagram of one embodiment of an adaptive delay memory switch.
- FIG. 8 is a block diagram of one embodiment using a memory subsystem as a switch.
- FIG. 1 An interconnect for connecting two data processing devices is shown in FIG. 1 .
- the diagram in FIG. 1 is general and illustrates the kind of data that is transferred between a sending device 10 and receiving device 12 over an interconnect 14 .
- the kind of information includes data 16 , a valid data signal (DVAL) 18 , an optional valid command signal (DVAL) 20 and a request signal (REQ) 22 .
- the sending device also may transmit a reference clock (REF_CLK) to the receiving device.
- the data may be data to be processed or command data and also may include a boundary signal which is a delimiter of the data being transferred, such as the end of an image for video data.
- Various implementations for the interconnect 14 and a protocol for controlling data flow over the interconnect are described in: U.S.
- FIG. 2 shows a device 20 connected to devices 22 and 24 through a switch 26 .
- a device 28 also is connected to devices 22 and 24 through switch 28 .
- the switch may be a circuit switch, a packet switch or a memory.
- a switch may be part of either an input section or an output section of a data processing device.
- mechanisms are provided to ensure that the flow of data to and from interconnected devices completes prior to changing the switching configuration provided by the switch.
- multiple processing devices may be interconnected through a switch while simultaneously conveying flow control information through the switch.
- Processing devices also may be provided with multiple input ports and/or multiple output ports to which data may be directed under dynamic control. A connection between an output port and an input port may be selected within the device using a switch.
- a circuit switch may have data buffering and may provide flow control signals on each port, or may be a simple crossbar switch.
- a circuit switch such as a crossbar switch, the pathways between connected devices are independent and separate, i.e., not shared, so that the behavior of one device does not directly affect the behavior of another device on the interconnect.
- Such a switch 26 can transport constant flow or a controlled flow data. Any device connected to the switch 26 is able to connect to any other device attached to the switch.
- FIG. 3 illustrates the use of a switch to connect devices which are connected by a time division multiplexed interconnect.
- time division multiplexing is described in more detail in U.S. Patent Application entitled “Apparatus and Method for Controlling Transfer of Data Between and Processing of Data by Interconnected Data Processing Elements,” filed Apr. 3, 1998, by Craig R. Frink et al.
- two devices 30 and 32 are connected to a time division multiplexing (TDM) transceiver 34 by a single interconnect.
- the TDM transceiver 34 is connected over a time division multiplexed connection to another TDM transceiver 36 .
- the TDM transceiver 36 demultiplexes the data from devices from 30 and 32 and provides a single stream connection for each device through a switch 38 .
- the switch 38 in turn directs the data streams to another TDM transceiver 40 .
- TDM transceiver 40 multiplexes its input streams from the crossbar switch 38 onto a time division multiplexed interconnect to another TDM transceiver 42 which demultiplexes the data to provide the data to devices 44 and 46 .
- Transceiver 48 operates in a manner similar to transceiver 40 .
- Transceiver 50 similarly connects devices 52 and 54 to the transceiver 48 .
- Devices 56 and 58 also connect to a transceiver 60 similar to transceiver 34 which is in turn connected to a transceiver 62 in order to connect the data flow from devices 56 and 58 to switch 38 .
- the use of the switch 38 in combination with time division multiplexing thus involves first decomposing the time division multiplexed data stream into individual data streams before directing them through the switch 38 .
- the streams output by the switch are combined in TDM transceivers for transmission to the devices.
- the switch 38 creates any desired connectivity among devices 30 , 32 , 56 , 58 , 44 , 46 , 52 and 54 .
- switch configuration may be controlled through a separate port under software control or by devices sending command data in the data transmitted over the interconnect. Both a sender and a receiver of data may have the ability to communicate connection information directly to the switch.
- Various methods for controlling a circuit-based switch, a packet switch and memory as a switch are described below.
- a switch configuration may be changed either statically or dynamically during system operation if data ordering is maintained.
- the data ordering is maintained for dynamic configuration of a switch because data flow devices are decoupled from each other in time, and the tasks they execute are allowed to complete at different times, at different rates.
- a control system for dynamic configuration thus may introduce overhead and reduce data throughput.
- the switch connection configuration may change after the flow of data to and from previous connections is completed.
- One way to control a circuit switch is by including in the switch a double-buffered register or queue of switch configurations which may be loaded by a central controller, host computer, or other device such as either a sending device or a receiving device.
- a new configuration may be loaded by the switch from the registers or queue at a time specified by a sender, or by a controller or by a receiver.
- a field advance counter described in U.S. patent application Ser. No. 08/879,981, entitled “Apparatus and Method for Controlling Transfer of Data Between and Processing of Data by Interconnected Data Processing Elements,” filed on Jun. 20, 1997 by Jeffrey D. Kurtze, et al., which is hereby incorporated by reference, may be used to control loading of a switch configuration in one embodiment.
- a field advance counter tracks data flow through a device by tracking the boundary signal. The counter is loaded with a value indicating the amount of data for which the configuration is valid. The counter is decremented in response to a boundary signal.
- the device being controlled by the field advance counter is the switch and possibly other devices in the same context.
- the command data provided to the switch is its configuration.
- the switch uses the boundary signal to detect data boundaries at which a reconfiguration of switch parameters may occur.
- the switch loads its new connection if the field advance counter is at zero.
- the field advance counter in the switch tracks the boundary signal at the target device connection port rather than at the input device connection port. Any new field advance counter value is loaded at the same time a new connection is made.
- a system in which such a switch may be used is described in U.S. Patent Application entitled “A Multi Stream Switch-Based Video Editing Architecture,” filed Apr. 3, 1998 by Jeffrey D. Kurtze et al. and U.S.
- command data embedded in the data sent by a sender through the switch to a receiver may be used to indicate the end of a connection sequence.
- This command data is termed herein a “fence.”
- the fence may be defined using a packet encoded through use of the valid command signal and valid data signal in conjunction with the data on the interconnect. Such packet encoding is described in U.S. Patent Applications entitled “Apparatus and Method for Controlling Transfer of Data Between and Processing of Data by Interconnected Data Processing Elements,” filed Apr. 3, 1998, by Craig R. Frink et al.
- an output port on the switch has a “current connection” indicating an input port to which it is connected, and a next connection in the queue.
- the switch detects a fence in an input data stream, the switch is configured according to the next input port specified for the output port of the connection for the data in which the fence was detected.
- a gap may be introduced in the data flow.
- the sender may stop sending data over the interconnect for a period of time following the last component of the data, i.e., after the boundary signal is asserted. This period of time may be programmable in a sender. The duration of such a gap may be defined by any latency in controlling the data flow in response to handshake signals between the receiver and sender and any latency through intervening switches between the sender and receiver. In the absence of a gap in the data flow, additional buffering may be used in the switch.
- the gap in the data flow also permits a phase-lock loop enough time to lock to any reference clock that accompanies the data over the interconnect from one device to the other through a switch after a dynamic switch of a data connection.
- the receiver may control the loading a new configuration in the switch from the register or queue.
- the receiver in this embodiment has a duplex connection.
- One connection provides a path for receiving data from the switch.
- the other connection provides a path for transmitting command data to the switch.
- the command data may be encoded using the valid command signal, the valid data signal and data in the same manner that a sender encodes a fence sent to the switch.
- the receiver may send the command data to the switch, for example, in response to a boundary signal. Although the sender still may have data available, the receiver de-asserts the request signal before changing the switch configuration, forcing the sender to wait until the receiver requests data. In this manner, a receiving device may select from several sender devices and may cause switching to occur at the data boundary as identified by the boundary signal.
- a system is shown including a device 70 connected to switch 72 to device 74 .
- Device 76 also is connected to device 74 through switch 72 , but the switch is not configured to maintain that connection.
- Device 74 is connected through switch 78 to device 76 , but the switch 78 is not configured to allow data flow from device 74 to device 76 .
- Device 80 is presently connected to provide data through switch 78 to device 76 .
- Device 74 may be connected to device 76 after the connection between device 80 and device 76 terminates.
- Device 76 may be connected to device 74 through switch 72 after the connection to device 70 terminates.
- Device 74 instructs switch 78 to change the configuration, and device 76 instructs switch 72 to change to the configuration.
- the switches wait for a fence to be received before establishing the new connection.
- command data may be present on an interconnect which is not flow controlled.
- a sending device such as device 74 or 76 , may attempt to issue command data to a receiver before the switch configuration is established if the configuration is requested by a receiver.
- the switch may be configured to signal to a device that the receiver connection is established.
- a sending device may wait for this signal from the switch before issuing any command data. The switch waits until the end of a current connection, i.e., a fence, before signaling the sender of a new connection.
- a duplex connection may be provided to the receiver.
- a device may send command data to the other device until an acknowledgment is received to confirm the establishment of a connection.
- a switch also may be used in a similar manner to indicate to a receiver using a command data that a new connection has been made.
- a packet switch dynamically routes each packet of data to an output port which is specified in some way by data within the packet.
- a packet switch through which data flow is controlled by the sender and receiver uses a packet protocol.
- One kind of packet protocol for this purpose is described in more detail in U.S. Patent Application entitled “A Packet Protocol for Encoding and Decoding Video Data and Data Flow Signals and Devices for Implementing the Packet Protocol,” filed Apr. 3, 1998 by Craig R. Frink, et al., which is hereby incorporated by reference.
- a packet switch generally receives data that incorporates an indication of a destination device, for example by indicating a network address of the device or an output port of the switch. In the embodiment shown in the last application cited above, the address is defined by a sequence of output ports on a series of interconnected devices.
- the packet switch sends command, interrupt and data packets from a sending device to a receiving device and sends request packets for controlling the flow of data from a receiving device to a sender device.
- An example embodiment of a switch, in combination with a transceiver to generate packet data from data interconnects will now be described in connection with FIG. 5 .
- FIG. 5A illustrates a packet transceiver 300 which is connected to receive data from one or more devices 302 .
- the connection at 304 may be direct data link over which data flow is controlled by a protocol such as described in U.S. Patent Application entitled “Apparatus and Method For Controlling Transfer of Data Between and Processing of Data By Interconnected Data Processing Elements,” filed Apr. 3, 1998, by Craig R. Frink, et al., which is hereby incorporated by reference.
- Transceiver 300 also is connected to one or more devices 306 through a similar port 308 .
- Transceiver 300 sends data to devices 306 .
- Ports 304 and 308 are connected through a dynamically configured switch 310 , which may be configured using methods described above.
- Switch 310 may connect devices 302 either to devices 306 or to the transceiver 300 .
- the transceiver 300 For each port of transceiver 300 that may receive data from a device 302 , the transceiver 300 has a transmit buffer 312 , which may be implemented as a FIFO. If the FIFO 312 is not full, a signal is generated by request logic 314 , which issues a request signal to device 302 .
- transceiver 300 may send data to device 306 by sending data from a receive buffer 316 , which may be implemented as a FIFO. A request signal from device 306 is processed by request logic 318 to issue a read command to the receive buffer 316 .
- Other similar transmit buffers and receive buffers (not shown) corresponding to other similar devices are connected through respective switches 320 and 322 .
- the flow of data between devices 306 and 302 and the transceiver 300 is regulated by the state of the FIFOs 312 and 316 .
- the transceiver 300 tries to maintain a constant flow of data between FIFOs 312 and 316 and devices 302 and 306 by issuing packet requests to another device, or by sending data in response to requests from other devices when data is available.
- Packet send logic 324 provides a data ready signal 326 to switch selector 328 .
- the switch selector 328 sets the state of switch 320 and sends a send data signal 330 to the packet send logic 324 .
- the packet send logic 324 instructs the FIFO 312 to read data which is transmitted to a packet wrapper 332 .
- the packet wrapper forms the data into a packet and supplies it to a buffer 334 which outputs the packet.
- the packet buffer 334 may be a double buffer to overlap packet transmission with packet assembly.
- Each port e.g. 304 and 308 , has a unique stream identifier (SID) associated with it. Data and data requests are directed to the ports as identified by the SID.
- SID also may be used to identify a packet context which is provided for each stream as indicated at 336 .
- the packet context 336 is used in the construction of packet headers including target addressing, stream identifier, etc.
- the transmission of data from a device 302 is performed in response to a request packet received by the transceiver 300 .
- the packet is received in a buffer 338 that also may be implemented as a double buffer.
- the stream identifier in a packet is used by stream selection circuit 340 to select a device 306 using switch 322 .
- the packet unwrapper 342 transforms the header and data portions of the packet into a request signal 344 or data 346 .
- the request signal 344 is provided to the switch selector 328 in order to create a send data signal 330 to the indicated channel.
- packet request logic 348 When receiving data, packet request logic 348 generates a packet request 350 when the FIFO 316 is not full.
- the packet request signal 350 prompts the switch selector 328 to issue a send packet request 352 to the packet wrapper 332 .
- the transceiver 300 also may be used to generate command packets in response to command data.
- the rate at which the data is sent by transceiver 300 also may be controlled in response to a packet rate control value identified in a request for data.
- the packet rate control value may be provided through request signal 344 to the switch selector 328 .
- the switch selector 328 includes a counter as described above which controls the rate at which packets are output by the packet wrapper 332 .
- Fig. 5B illustrates an example interconnection of devices using transceivers such as transceiver 300 in FIG. 5 A.
- system 400 is connected to system 402 through a packet protocol interconnect 404 .
- Transceivers 406 and 408 provide a connection to the interconnect 404 and are implemented as shown in FIG. 5 A.
- System 402 includes devices 410 , 412 , 414 and 416 which are connected to the transceiver 408 in the same manner that devices 302 and 306 are connected to transceiver 300 in Fig. 5 A.
- Devices 418 , 420 , 422 and 424 similarly are connected to transceiver 406 .
- Device 420 is a time division multiplexed interface that connects two devices 426 and 428 to the transceiver 406 .
- Data streams in the system may be routed between devices using the transceivers 406 and 408 and even between devices within the same system because transceivers 406 and 408 include a dynamically configured switch 310 (FIG. 5 A).
- this transceiver switch enables multiple stream copies to be created from a single stream of data.
- FIG. 5 C Another example system is shown in FIG. 5 C.
- systems 450 and 452 are interconnected by a packet protocol interface 454 .
- the connection is provided by transceivers 456 and 458 which are implemented using the transceiver shown in FIG. 5 A.
- System 452 includes a first device 460 which uses three data channels connected to the transceiver 458 .
- Such a device may be a high definition televisional (HDTV) device using 4:2:2 video and an alpha channel.
- a similar device 462 is found in system 450 .
- Device 464 uses one channel and may provide a standard definition television signal (SDTV) defining 4:4:4:4 video and an alpha channel.
- SDTV standard definition television signal
- a similar device 466 is shown in system 450 .
- the transceiver 456 combines multiple input streams, e.g. from devices 462 and 460 into a single high speed connection 454 .
- the single stream of data from connection 454 is divided into multiple streams to the devices 460 , 462 , 464 and 466 . This capability is useful when transferring data streams that operate at a rate above that of a single port.
- the combination of a FIFO buffer and flow control protocols for each port on the transceiver enables the transceiver to maintain maximum data throughput when connecting devices across a packet protocol interface, e.g., 454 , and through the transceiver.
- the high throughput and efficient interconnect utilization is provided with a flexible routing method.
- the packet switch may be provided with buffering at its input and output ports to avoid underrun and overrun conditions.
- the buffer may be implemented as a first-in/first-out memory.
- the buffer should be large enough to sustain a target data throughput of the switch where multiple devices contend for the same destination port.
- switch Another kind of switch that may be used is a memory-based switch. Such a switch may be used in circumstances where several devices are interconnected by a memory.
- a memory-based switch Such a switch may be used in circumstances where several devices are interconnected by a memory.
- One embodiment of such as switch is shown in U.S. Patent Application entitled “Method and Apparatus for Controlling Data Flow Between Devices Connected by Memory,” filed Apr. 3, 1998, by Craig R. Frink, which is hereby incorporated by reference.
- a memory 81 has three buffers, 82 , 84 and 86 .
- a first sending device 88 sends data to buffer 86 .
- a second sending device 90 sends data to buffer 84 .
- a third sending device 92 sends data to buffer 82 .
- the receiving device 94 may read data from any of the buffers 82 , 84 and 86 .
- receiving device 94 is shown receiving data from sending device 92 through buffer 83 .
- the sending devices 88 , 90 and 92 send flow control information over a flow control channel 96 to the device 94 .
- the receiving device 94 sends flow control information back to any of the sending devices 88 , 90 and 92 over control channel 96 according to the buffer from which it reads the data.
- this system uses host memory as a flow controlled switch among the PCI devices.
- the data flow passes through the memory.
- Flow control information is passed through a separate link.
- the flow control information also may have an associated switch, or flow control information from all senders may be received by each destination.
- the control channel also may communicate auxiliary switching information between connected DMA devices.
- This auxiliary switching information permits remote devices to implement dynamic packet switching through memory.
- Such auxiliary switching information may include the starting address of the data buffer and memory, the buffer size and configuration, and the source address of the device connection at the destination end.
- the auxiliary information may include a memory address into which data is to be written or a device address to which data should be routed.
- the switching information also may be provided by a field advance counter.
- a fast memory is used as a multiport data switch with built in time-base correction and buffering. This embodiment allows multiple data stream copies to be created from a single input stream by allocating a separate buffer for each destination device.
- a memory 100 is accessed through a memory controller 102 by a first memory access engine 104 and a second memory access engine 106 .
- Either device 108 or 110 write data into the memory 100 through DMA engine 106 .
- Device 112 and device 114 read data from the memory 100 through DMA 104 .
- DMA engine 106 maintains a context for devices 108 and 110 .
- DMA engine 104 maintains a context for devices 112 and 114 .
- a flow control channel 116 is used between DMA engines 104 and 106 , for each pair of contexts.
- the devices implement switching by controlling the address into which data is written in the memory 100 .
- Such techniques are described in more detail in U.S. Patent Application entitled “Method and Apparatus for Accessing Video Data in Memory Across Flow-Controlled Interconnection,” filed Apr. 3, 1998, by Craig R. Frink, which is hereby incorporated by reference.
- a switch also may be connected between the devices 108 , 110 , 112 and 114 and the memory access engines 106 and 104 .
- a memory may be used as a switch into which packet data is assembled and disassembled for further processing.
- the memory in which such an operation occurs should be the destination specified for the packet in its header. If the packet indicates that the memory is not the final destination of the packet, the entire packet is treated as data. When the data is read from the memory, the header may be modified before sending the packet to the next destination.
- the unified memory 120 also may be implemented using host memory.
- a large unified memory 120 is connected to a host interface 122 via a memory arbiter 124 .
- the host interface 122 may connect the memory arbiter 124 to a local bus 126 and a host bus 128 .
- Multiple ports for providing flow controlled data are shown at 130 and 132 . The number of ports is limited by the available bandwidth to the memory 120 .
- Some inter-interface communications may be provided at block 134 .
- Each port 130 , 132 has two multi-context direct memory access (DMA) engines, one for reading and one for writing.
- the number of contexts supported equals the number of active stream identifiers for the port.
- a DMA engine includes data and address FIFOs for accessing the memory 120 .
- Broadcast interrupt packets or signals may be used to convey status of one port 130 to other ports and interfaces via the inter-interface communications block 134 .
- the host interface also may have two multicontext DMA engines with FIFO memories for reading and writing data to the memory in a similar connection to the inter-interface communications block 134 .
- a host interface 122 may access the control and status registers in the memory subsystem.
- the local bus may be used to communicate with other subsystem components.
- the inter-interface communications block 134 gathers broadcast interrupts and status signals from the interfaces and distributes them to the other devices connected to the memory. Passing of these signals corresponds to the flow controlled channel described above in connection with FIG. 6 .
- the arbiter 124 selects one of the interfaces, whether the host interface 122 or ports 130 or 132 .
- Switches may support transport of both constant flow and controlled flow streams of data. Although data streams arrive at devices with no specified alignment, a constant flow data stream may require alignment. A constant flow stream also is switched at synchronization points, such as the vertical SYNC signal. In order to account for time-base delays between devices, and to ensure that these delays are compensated prior to creating a new connection, time-base correction may be used. A time-base corrector usually employs a frame buffer to store and synchronize the data.
- a controlled flow application may provide alignment using a small memory, such as a small first-in/first-out memory which stores a few components of video data.
- multiple processing devices may be interconnected while simultaneously conveying flow control information between interconnected devices.
- the various methods for controlling the configuration of the switch enable circuit switches, packet switches and memory switches to be used and to be dynamically configured.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (4)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/054,863 US6327253B1 (en) | 1998-04-03 | 1998-04-03 | Method and apparatus for controlling switching of connections among data processing devices |
AU35470/99A AU3547099A (en) | 1998-04-03 | 1999-03-30 | Method and apparatus for controlling switching of connections among data processing devices |
CA002326686A CA2326686A1 (en) | 1998-04-03 | 1999-03-30 | Method and apparatus for controlling switching of connections among data processing devices |
PCT/US1999/007000 WO1999052246A1 (en) | 1998-04-03 | 1999-03-30 | Method and apparatus for controlling switching of connections among data processing devices |
EP99917321A EP1068701A1 (en) | 1998-04-03 | 1999-03-30 | Method and apparatus for controlling switching of connections among data processing devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/054,863 US6327253B1 (en) | 1998-04-03 | 1998-04-03 | Method and apparatus for controlling switching of connections among data processing devices |
Publications (1)
Publication Number | Publication Date |
---|---|
US6327253B1 true US6327253B1 (en) | 2001-12-04 |
Family
ID=21993991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/054,863 Expired - Fee Related US6327253B1 (en) | 1998-04-03 | 1998-04-03 | Method and apparatus for controlling switching of connections among data processing devices |
Country Status (5)
Country | Link |
---|---|
US (1) | US6327253B1 (en) |
EP (1) | EP1068701A1 (en) |
AU (1) | AU3547099A (en) |
CA (1) | CA2326686A1 (en) |
WO (1) | WO1999052246A1 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020172197A1 (en) * | 2001-05-18 | 2002-11-21 | Dale Michele Zampetti | System interconnect with minimal overhead suitable for real-time applications |
US20030024118A1 (en) * | 2001-08-01 | 2003-02-06 | Homer Steven S. | Low profile NIC jumper solution using ZIF connector |
US20030133448A1 (en) * | 1998-04-03 | 2003-07-17 | Craig R. Frink | Packet protocol for encoding and decoding video data and data flow signals and devices for implementing the packet protocol |
US20030146073A1 (en) * | 2002-01-25 | 2003-08-07 | Fulcrum Microcystems Inc. A California Corporation | Asynchronous crossbar with deterministic or arbitrated control |
EP1383287A1 (en) * | 2002-07-19 | 2004-01-21 | Calix Networks, Inc. | Arbiter for an input buffered communication switch |
US20040041175A1 (en) * | 2002-08-29 | 2004-03-04 | Anderson Howard C. | Apparatus for programming a programmable device, and method |
US6715023B1 (en) * | 1999-09-23 | 2004-03-30 | Altera Corporation | PCI bus switch architecture |
US6731809B1 (en) * | 1998-04-28 | 2004-05-04 | Brother Kogyo Kabushiki Kaisha | Moving picture data compression device |
US20040122643A1 (en) * | 2002-08-29 | 2004-06-24 | Anderson Howard C. | Apparatus and method for simulating switched-capacitor circuits |
US20040151209A1 (en) * | 2002-04-30 | 2004-08-05 | Fulcrum Microsystems Inc. A California Corporation | Asynchronous system-on-a-chip interconnect |
US20040246977A1 (en) * | 2001-06-04 | 2004-12-09 | Jason Dove | Backplane bus |
US20050046748A1 (en) * | 2003-08-28 | 2005-03-03 | Ellett Kirk D. | Video switching systems and methods |
US20050135807A1 (en) * | 2002-06-06 | 2005-06-23 | Takehiro Fujita | Switching control device for wavelength-division multiplexing optical signal |
US20050157648A1 (en) * | 2002-11-05 | 2005-07-21 | Nortel Networks Limited | Method and system for extending the reach of a data communication channel using a flow control interception device |
US6961801B1 (en) | 1998-04-03 | 2005-11-01 | Avid Technology, Inc. | Method and apparatus for accessing video data in memory across flow-controlled interconnects |
US7024654B2 (en) | 2002-06-11 | 2006-04-04 | Anadigm, Inc. | System and method for configuring analog elements in a configurable hardware device |
US20060078125A1 (en) * | 2004-10-08 | 2006-04-13 | Philip Cacayorin | Devices and methods for implementing cryptographic scrambling |
US20060114844A1 (en) * | 2004-11-30 | 2006-06-01 | Qin-Fan Zhu | System, method, and apparatus for displaying pictures |
US20060126520A1 (en) * | 2004-12-15 | 2006-06-15 | Cisco Technology, Inc. | Tape acceleration |
US7187672B1 (en) | 2002-05-15 | 2007-03-06 | Calix Networks, Inc. | Connection rearrangement in communication switches |
US20070101134A1 (en) * | 2005-10-31 | 2007-05-03 | Cisco Technology, Inc. | Method and apparatus for performing encryption of data at rest at a port of a network device |
US20080059687A1 (en) * | 2006-08-31 | 2008-03-06 | Peter Mayer | System and method of connecting a processing unit with a memory unit |
US20100074615A1 (en) * | 2008-09-24 | 2010-03-25 | Shuhei Kondo | Switch device, connection system and connection control method |
US8069270B1 (en) | 2005-09-06 | 2011-11-29 | Cisco Technology, Inc. | Accelerated tape backup restoration |
US8464074B1 (en) | 2008-05-30 | 2013-06-11 | Cisco Technology, Inc. | Storage media encryption with write acceleration |
CN114201428A (en) * | 2020-09-18 | 2022-03-18 | 高创(苏州)电子有限公司 | Electronic device and USB interface switching method |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290054B2 (en) | 2002-04-26 | 2007-10-30 | Redback Networks Inc. | Dynamic modification of a subscriber connection |
WO2015056036A1 (en) * | 2013-10-14 | 2015-04-23 | Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi | Adaptive soft video switch for field programmable gate arrays |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4760573A (en) | 1985-12-04 | 1988-07-26 | International Business Machines Corp. | Multiplex interface for a communication controller |
EP0303751A1 (en) | 1987-08-20 | 1989-02-22 | International Business Machines Corporation | Interface mechanism for controlling the exchange of information between two devices |
WO1990003004A1 (en) | 1988-09-02 | 1990-03-22 | Dallas Semiconductor Corporation | Multiport memory system |
EP0535860A2 (en) | 1991-10-04 | 1993-04-07 | AT&T Corp. | Congestion control for high speed packet networks |
EP0579389A1 (en) | 1992-06-26 | 1994-01-19 | Sun Microsystems, Inc. | Source synchronized metastable free bus |
EP0692764A1 (en) | 1994-06-17 | 1996-01-17 | Advanced Micro Devices, Inc. | Memory throttle for PCI master |
EP0700003A2 (en) | 1994-08-31 | 1996-03-06 | Motorola, Inc. | Data processor with controlled burst memory accesses and method therefor |
US5541932A (en) * | 1994-06-13 | 1996-07-30 | Xerox Corporation | Circuit for freezing the data in an interface buffer |
US5600643A (en) * | 1993-09-23 | 1997-02-04 | Bell Communications Research, Inc. | Broadband intelligent telecommunications network and method providing enhanced capabilities for customer premises equipment |
US5640210A (en) | 1990-01-19 | 1997-06-17 | British Broadcasting Corporation | High definition television coder/decoder which divides an HDTV signal into stripes for individual processing |
US5715247A (en) * | 1995-08-01 | 1998-02-03 | Nec Corporation | Method of sending and receiving setting information and monitoring information in communication apparatus |
US5748632A (en) * | 1995-07-07 | 1998-05-05 | Nec Corporation | ATM switching apparatus |
US5838937A (en) * | 1995-12-23 | 1998-11-17 | Electronics And Telecommunications Research Institute | Data transmitting/receiving method using distributed path control in data switching system |
US5847779A (en) | 1994-06-15 | 1998-12-08 | Rca Thomson Licensing Corporation | Synchronizing a packetized digital datastream to an output processor in a television signal processing system |
WO1998059494A1 (en) | 1997-06-20 | 1998-12-30 | Avid Technology, Inc. | Apparatus and method for controlling transfer of data between processing elements |
US5991824A (en) * | 1997-02-06 | 1999-11-23 | Silicon Graphics, Inc. | Method and system for simultaneous high bandwidth input output |
-
1998
- 1998-04-03 US US09/054,863 patent/US6327253B1/en not_active Expired - Fee Related
-
1999
- 1999-03-30 WO PCT/US1999/007000 patent/WO1999052246A1/en not_active Application Discontinuation
- 1999-03-30 CA CA002326686A patent/CA2326686A1/en not_active Abandoned
- 1999-03-30 EP EP99917321A patent/EP1068701A1/en not_active Withdrawn
- 1999-03-30 AU AU35470/99A patent/AU3547099A/en not_active Abandoned
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4760573A (en) | 1985-12-04 | 1988-07-26 | International Business Machines Corp. | Multiplex interface for a communication controller |
EP0303751A1 (en) | 1987-08-20 | 1989-02-22 | International Business Machines Corporation | Interface mechanism for controlling the exchange of information between two devices |
WO1990003004A1 (en) | 1988-09-02 | 1990-03-22 | Dallas Semiconductor Corporation | Multiport memory system |
US5640210A (en) | 1990-01-19 | 1997-06-17 | British Broadcasting Corporation | High definition television coder/decoder which divides an HDTV signal into stripes for individual processing |
EP0535860A2 (en) | 1991-10-04 | 1993-04-07 | AT&T Corp. | Congestion control for high speed packet networks |
EP0579389A1 (en) | 1992-06-26 | 1994-01-19 | Sun Microsystems, Inc. | Source synchronized metastable free bus |
US5600643A (en) * | 1993-09-23 | 1997-02-04 | Bell Communications Research, Inc. | Broadband intelligent telecommunications network and method providing enhanced capabilities for customer premises equipment |
US5541932A (en) * | 1994-06-13 | 1996-07-30 | Xerox Corporation | Circuit for freezing the data in an interface buffer |
US5847779A (en) | 1994-06-15 | 1998-12-08 | Rca Thomson Licensing Corporation | Synchronizing a packetized digital datastream to an output processor in a television signal processing system |
EP0692764A1 (en) | 1994-06-17 | 1996-01-17 | Advanced Micro Devices, Inc. | Memory throttle for PCI master |
EP0700003A2 (en) | 1994-08-31 | 1996-03-06 | Motorola, Inc. | Data processor with controlled burst memory accesses and method therefor |
US5748632A (en) * | 1995-07-07 | 1998-05-05 | Nec Corporation | ATM switching apparatus |
US5715247A (en) * | 1995-08-01 | 1998-02-03 | Nec Corporation | Method of sending and receiving setting information and monitoring information in communication apparatus |
US5838937A (en) * | 1995-12-23 | 1998-11-17 | Electronics And Telecommunications Research Institute | Data transmitting/receiving method using distributed path control in data switching system |
US5991824A (en) * | 1997-02-06 | 1999-11-23 | Silicon Graphics, Inc. | Method and system for simultaneous high bandwidth input output |
WO1998059494A1 (en) | 1997-06-20 | 1998-12-30 | Avid Technology, Inc. | Apparatus and method for controlling transfer of data between processing elements |
Non-Patent Citations (3)
Title |
---|
Anujan Varma et al., "Using Camp-On to Improve the Performance of a Fibre Channel Switch," pp. 247-255, Proceedings of the Conference on Local Computer Networks, Jan. 1993. |
Terry M. Anderson, et al., "High-Performance Switching with Fibre Channel," pp. 261-264, Intellectual Leverage, San Francisco, Feb. 1992. |
Yurdaer N. Do{haeck over (g)}anata, et al., "Effects of Cascading on the Performance of a Switching Subsystem," pp. 1493-1497, Communication for Global Users, Orlando, FL, Dec. 1992. |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030133448A1 (en) * | 1998-04-03 | 2003-07-17 | Craig R. Frink | Packet protocol for encoding and decoding video data and data flow signals and devices for implementing the packet protocol |
US6961801B1 (en) | 1998-04-03 | 2005-11-01 | Avid Technology, Inc. | Method and apparatus for accessing video data in memory across flow-controlled interconnects |
US6731809B1 (en) * | 1998-04-28 | 2004-05-04 | Brother Kogyo Kabushiki Kaisha | Moving picture data compression device |
US6715023B1 (en) * | 1999-09-23 | 2004-03-30 | Altera Corporation | PCI bus switch architecture |
US20020172197A1 (en) * | 2001-05-18 | 2002-11-21 | Dale Michele Zampetti | System interconnect with minimal overhead suitable for real-time applications |
US20040246977A1 (en) * | 2001-06-04 | 2004-12-09 | Jason Dove | Backplane bus |
US20030024118A1 (en) * | 2001-08-01 | 2003-02-06 | Homer Steven S. | Low profile NIC jumper solution using ZIF connector |
US6766577B2 (en) * | 2001-08-01 | 2004-07-27 | Hewlett-Packard Development Company, L.P. | Method for changeably connecting electronic devices |
US20030146074A1 (en) * | 2002-01-25 | 2003-08-07 | Fulcrum Microsystems Inc. A California Corporation | Asynchronous crossbar with deterministic or arbitrated control |
US7274710B2 (en) * | 2002-01-25 | 2007-09-25 | Fulcrum Microsystems, Inc. | Asynchronous crossbar with deterministic or arbitrated control |
US7274709B2 (en) * | 2002-01-25 | 2007-09-25 | Fulcrum Microsystems, Inc. | Asynchronous crossbar with deterministic or arbitrated control |
US20030146073A1 (en) * | 2002-01-25 | 2003-08-07 | Fulcrum Microcystems Inc. A California Corporation | Asynchronous crossbar with deterministic or arbitrated control |
US20030146075A1 (en) * | 2002-01-25 | 2003-08-07 | Fulcrum Microsystems Inc. | Asynchronous crossbar with deterministic or arbitrated control |
US7283557B2 (en) * | 2002-01-25 | 2007-10-16 | Fulcrum Microsystems, Inc. | Asynchronous crossbar with deterministic or arbitrated control |
US7239669B2 (en) | 2002-04-30 | 2007-07-03 | Fulcrum Microsystems, Inc. | Asynchronous system-on-a-chip interconnect |
US20040151209A1 (en) * | 2002-04-30 | 2004-08-05 | Fulcrum Microsystems Inc. A California Corporation | Asynchronous system-on-a-chip interconnect |
US7187672B1 (en) | 2002-05-15 | 2007-03-06 | Calix Networks, Inc. | Connection rearrangement in communication switches |
US20050135807A1 (en) * | 2002-06-06 | 2005-06-23 | Takehiro Fujita | Switching control device for wavelength-division multiplexing optical signal |
US7313327B2 (en) * | 2002-06-06 | 2007-12-25 | Fujitsu Limited | Switching control device for wavelength-division multiplexing optical signal |
US7024654B2 (en) | 2002-06-11 | 2006-04-04 | Anadigm, Inc. | System and method for configuring analog elements in a configurable hardware device |
US6954811B2 (en) | 2002-07-19 | 2005-10-11 | Calix Networks, Inc. | Arbiter for an input buffered communication switch |
EP1383287A1 (en) * | 2002-07-19 | 2004-01-21 | Calix Networks, Inc. | Arbiter for an input buffered communication switch |
US20040017804A1 (en) * | 2002-07-19 | 2004-01-29 | Meenaradchagan Vishnu | Arbiter for an input buffered communication switch |
US20040122643A1 (en) * | 2002-08-29 | 2004-06-24 | Anderson Howard C. | Apparatus and method for simulating switched-capacitor circuits |
US20040041175A1 (en) * | 2002-08-29 | 2004-03-04 | Anderson Howard C. | Apparatus for programming a programmable device, and method |
US6978435B2 (en) | 2002-08-29 | 2005-12-20 | Anadigm, Inc. | Apparatus for programming a programmable device, and method |
US7209445B2 (en) * | 2002-11-05 | 2007-04-24 | Nortel Networks Limited | Method and system for extending the reach of a data communication channel using a flow control interception device |
US20050157648A1 (en) * | 2002-11-05 | 2005-07-21 | Nortel Networks Limited | Method and system for extending the reach of a data communication channel using a flow control interception device |
US20050046748A1 (en) * | 2003-08-28 | 2005-03-03 | Ellett Kirk D. | Video switching systems and methods |
US7190412B2 (en) * | 2003-08-28 | 2007-03-13 | The Boeing Company | Video switching systems and methods |
US20060078125A1 (en) * | 2004-10-08 | 2006-04-13 | Philip Cacayorin | Devices and methods for implementing cryptographic scrambling |
US20060078127A1 (en) * | 2004-10-08 | 2006-04-13 | Philip Cacayorin | Dispersed data storage using cryptographic scrambling |
US20060078126A1 (en) * | 2004-10-08 | 2006-04-13 | Philip Cacayorin | Floating vector scrambling methods and apparatus |
US7675872B2 (en) * | 2004-11-30 | 2010-03-09 | Broadcom Corporation | System, method, and apparatus for displaying pictures |
US9055297B2 (en) | 2004-11-30 | 2015-06-09 | Broadcom Corporation | System, method, and apparatus for displaying pictures |
US20060114844A1 (en) * | 2004-11-30 | 2006-06-01 | Qin-Fan Zhu | System, method, and apparatus for displaying pictures |
US20060126520A1 (en) * | 2004-12-15 | 2006-06-15 | Cisco Technology, Inc. | Tape acceleration |
US8069270B1 (en) | 2005-09-06 | 2011-11-29 | Cisco Technology, Inc. | Accelerated tape backup restoration |
US8266431B2 (en) | 2005-10-31 | 2012-09-11 | Cisco Technology, Inc. | Method and apparatus for performing encryption of data at rest at a port of a network device |
US20070101134A1 (en) * | 2005-10-31 | 2007-05-03 | Cisco Technology, Inc. | Method and apparatus for performing encryption of data at rest at a port of a network device |
US20080059687A1 (en) * | 2006-08-31 | 2008-03-06 | Peter Mayer | System and method of connecting a processing unit with a memory unit |
US8464074B1 (en) | 2008-05-30 | 2013-06-11 | Cisco Technology, Inc. | Storage media encryption with write acceleration |
US20100074615A1 (en) * | 2008-09-24 | 2010-03-25 | Shuhei Kondo | Switch device, connection system and connection control method |
US8224182B2 (en) * | 2008-09-24 | 2012-07-17 | Nec Corporation | Switch device, connection system and connection control method |
CN114201428A (en) * | 2020-09-18 | 2022-03-18 | 高创(苏州)电子有限公司 | Electronic device and USB interface switching method |
US20230222078A1 (en) * | 2020-09-18 | 2023-07-13 | K Tronics (Suzhou) Technology Co., Ltd. | Electronic apparatus and usb interface switching method |
US11921663B2 (en) * | 2020-09-18 | 2024-03-05 | K-Tronics (Suzhou) Technology Co., Ltd. | Electronic apparatus and USB interface switching method |
Also Published As
Publication number | Publication date |
---|---|
CA2326686A1 (en) | 1999-10-14 |
AU3547099A (en) | 1999-10-25 |
WO1999052246A1 (en) | 1999-10-14 |
EP1068701A1 (en) | 2001-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6327253B1 (en) | Method and apparatus for controlling switching of connections among data processing devices | |
US6141691A (en) | Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements | |
US5881245A (en) | Method and apparatus for transmitting MPEG data at an adaptive data rate | |
US6134607A (en) | Method and apparatus for controlling data flow between devices connected by a memory | |
EP0988756B1 (en) | Apparatus and method for controlling transfer of data between processing elements | |
US7050505B2 (en) | Aliasing and routing of plural MPEG data streams | |
EP1068732B1 (en) | A packet protocol for encoding and decoding video data and data flow signals | |
US5949441A (en) | Multimedia terminal with an encoder for converting analog video data to compressed digitized video data | |
US6119243A (en) | Architecture for the isochronous transfer of information within a computer system | |
JP5253404B2 (en) | System and method for object-oriented hardware | |
US7359376B1 (en) | Serial compressed bus interface having a reduced pin count | |
US6961801B1 (en) | Method and apparatus for accessing video data in memory across flow-controlled interconnects | |
EP2903289A1 (en) | Receiver for layered real-time data stream and method of operating the same | |
EP0577362A2 (en) | An expanded architecture for image storage and distribution | |
JP2001094598A (en) | Server device, server node device, client node device, and network system | |
JP2004326215A (en) | Signal processor and signal processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AVID TECHNOLOGY, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FRINK, CRAIG R.;REEL/FRAME:009181/0177 Effective date: 19980505 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT, MASSAC Free format text: SECURITY AGREEMENT;ASSIGNORS:AVID TECHNOLOGY, INC.;PINNACLE SYSTEMS, INC.;REEL/FRAME:025675/0413 Effective date: 20101001 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20131204 |
|
AS | Assignment |
Owner name: AVID SYSTEMS, INC., MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:036037/0693 Effective date: 20150622 Owner name: AVID TECHNOLOGY INC., MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:036037/0693 Effective date: 20150622 |