1. Field of the Invention
The field of the invention relates to control systems generally, and more particularly to certain new and useful advances in network topologies connecting multiple devices within control systems for industrial applications, of which the following is a specification.
2. Description of Related Art
At a high level, controller devices are essentially specialized computers that contain most of the components found in a personal computer (hereinafter PC) today, including central processing units (hereinafter CPUs), memory, disk drives, and various input and output (hereinafter I/O) connections. Like computers, controller devices can be linked together in a network in order to communicate information and transfer data back and forth quickly and efficiently.
Industrial control systems today require highly reliable, fail-safe communications. The key to the performance of a distributed system with multiple controller devices lies in the network structure or topology. The network structure must allow the various computing, memory, and I/O elements within the design to exchange data efficiently, and at high bit rates with reliability in the event of a failure.
PCI™ (hereinafter PCI) and its successor PCI Express® (hereinafter PCIe) are serial bus standards that provide electrical, physical and logical interconnections for peripheral components of microprocessor-based systems. The native topology of connections supported by PCIe emulates the tree structure of its predecessor PCI. The native PCI tree topology allows only one master central processing unit (hereinafter CPU) in the system. This master CPU is known as a root complex. Other CPUs and similar compute devices can be connected to the PCI tree as a leaf node to the root complex. If the primary root complex fails, the CPU connected through the non-transparent bridge can take over system control and become the new root complex.
Tree structures have some drawbacks for the needs of modern control systems that connect multiple controller devices in a network. For example, in the standard PCIe tree, all devices must be initialized by a common root complex in a process referred to as PCIe enumeration. The root complex must be aware of all PCIe devices in the network in order for the enumeration process and future communication to be successful. This limits the known topologies of PCIe devices to tree or star topologies and prevents the use of daisy-chained or ring topologies.
Thus, there is a need for devices, systems and methods that take advantage of the high-speed connection capabilities of the PCIe standard without the drawbacks and constraints of known network configurations for PCIe devices.
The apparatuses, systems and methods of the subject invention are directed to devices that are connected in a ring topology. Each of the devices is capable of high-speed serial communication, and utilizes a communication standard, such as PCIe, in order to transfer and receive data between devices. Each device has multiple ports that are used to connect to neighboring devices. There are two physical links connecting each device, which provide two paths for peer-to-peer communication with all of the other devices on the ring. The ring topology provides for redundant communication paths and ease of expansion not possible with PCIe or similar standards having tree or star topologies. As a result, if a failure occurs at any single point in the ring, there is still an alternate path for any device to communicate with every other device. As a result, the devices, systems and methods of the subject invention provide redundancy, which enables more reliable data transfer for various applications including a number of industrial control applications. In addition, utilizing the PCIe standard in this ring topology enables an extremely fast transfer of data from one device to another. Moreover, unlike conventional systems that utilize PCIe bus communication, the subject invention does not require a server or main host functioning as a PCIe root complex to control information from one device or node to the other, as each device can contact any other device on the ring.
One embodiment of the present invention is a system comprising a plurality of devices, each of the plurality of devices having a central processing unit connected to a Peripheral Component Interconnect Express (hereinafter PCIe) bridge. The devices are connected to each other in a peer-to-peer arrangement along high-speed communication connections in a ring. The PCIe bridge of each of the plurality of devices has at least one non-transparent (hereinafter NT) port. The PCIe bridge of each of the plurality of devices may have a first port and a second port for connecting respective devices to the ring. A third port may also be provided for transmitting and receiving data to and from the respective device to one or more of the plurality of devices in the ring. The system may be configured such that each of the devices are capable of transmitting and receiving data in two directions, left and right, around the ring.
A method of providing data transfer between an initiating device and a target device is also provided. In one embodiment, the method comprises the steps of providing a plurality of devices including an initiating device and a target device, each of the plurality of devices having a non-transparent PCIe bridge; connecting the plurality of devices in a peer-to-peer ring topology; and performing transfer of data by traversing the ring topology starting from the initiating device and ending at the target device. The PCIe bridge may include at least a first port, a second port, and a third port. The step of connecting the plurality of devices in the ring topology may include cabling the first and second ports of each of the devices to the ring topology using a high-speed communications connection, such as a PCIe cable or connector. In another embodiment, the method further comprises the step of connecting the third port to an internal PCIe bus within each of the plurality of devices, respectively.
In yet another embodiment, the method further comprises the step of selecting one of the first port and the second port on the initiating device from which to begin transfer of the data, based on a direction having the smallest number of intervening devices between the initiating device and the target device on the ring. In other words, data transfer may occur in a direction with the shortest distance to travel between the initiating and target device. In another embodiment, the method further comprises the step of reading or writing the data within an internal memory of the target device, after the ring topology has been traversed and transfer of data to and/or from the target device is completed. In another embodiment, the method further comprises the step of initiating transfer of data on the first port and the second port concurrently, in order to allow the transaction to proceed in both directions around the ring topology. In yet another embodiment, the method further comprises the step of initiating transfer of data from the initiating device to the target device in a first direction around the ring, and if a failure is detected, then initiating the transaction only in a second direction, opposite the failure, around the ring topology.
Other features and advantages of the disclosure will become apparent by reference to the following description taken in connection with the accompanying drawings.
Reference is now made briefly to the accompanying drawings, in which:
Like reference characters designate identical or corresponding components throughout the several views, which are not to scale unless otherwise indicated.
The devices, systems and methods of the subject invention are directed to a ring topology for connecting compute devices. The subject invention is particularly useful for applications where high bandwidth, low latency, redundancy, and ease of expansion are desired. The subject invention enables compute devices, each having a PCIe bridge with at least one NT port, to be networked in a ring topology. The subject invention overcomes the native topology of high-speed serial communication bus standards, like PCIe, in order to achieve a number of benefits and advantages over known apparatuses, systems and methods as described herein.
In one embodiment, redundant transfer of data is achieved by sending a copy of the data from the initiating device simultaneously around both directions (left and right) of the ring to the target device(s) in the ring. In another embodiment, redundancy is achieved by initially transferring data only in one direction (left or right), and only after a failure is detected on that link would the other direction be used. With this method, a device could send data to any other device in the system 20 without active involvement from intervening devices in between the initiating device and the target device.
In another embodiment, there are multiple NT ports on each bridge of one or more of the compute devices in the ring topology. While one NT port is the minimal number to allow a PCIe ring topology, additional NT ports could be used as well. In addition, the NT port location could be reconfigured during system start-up to provide flexibility in the ring link connectors. For example, one or more of the compute devices could support both a cable connector and a stacking connector to directly plug into two compute devices. In yet another embodiment, one of the two ports on the PCIe bridge that connects the device to the ring could be either a proprietary connector for direct device-to-device links, or alternatively could be configured to be a PCIe cable connector for a link with cables.
While there is only one NT port required per PCIe bridge, any communication to an adjacent device in the system will go through the NT port of that device. In one direction, the CPU of a given compute device interfaces with the NT port windows of its own PCIe bridge. In the other direction, the CPU interfaces with the NT port windows of the adjacent device. Both the left and right ports in this embodiment are NT ports so an address translation can be made for each window. The Window 0 port address translation will be mapped to the internal CPU's memory of the “adjacent” CPU in the ring. The exact memory address can be different for each CPU. The other Windows (1 to 4) must have a memory translation to the next device's NT port and move the memory address down by 1 memory window (for example, 0xA0100000 translates to 0xA0000000 into the next NT port).
Devices in the ring topology of the subject invention may have heterogeneous operating systems. For example, in
The devices, systems and methods of the subject invention described herein allow for higher reliability of data transfer on a network. The ring topology provides a mechanism to remove or repair a device without isolating or disrupting any communication to any other device in the ring. The ring topology also allows for a single point of failure such as a cable break without bringing down the entire network. In addition, if an additional device needs to be added to the network, a device will only need to be inserted between two existing devices and connected to the ring in the fashion described above with respect to existing devices. Although the connection between the two will be broken momentarily while the new node is added, the network traffic can be re-routed in the alternate path along the ring, so no communication is lost. Once the new device is added, it is automatically discovered by the other devices as traffic is passed through.
As used herein, an element or function recited in the singular and proceeded with the word “a” or “an” should be understood as not excluding plural said elements or functions, unless such exclusion is explicitly recited. Furthermore, references to “one embodiment” of the claimed invention should not be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to make and use the invention. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.
Although specific features of the invention are shown in some drawings and not in others, this is for convenience only as each feature may be combined with any or all of the other features in accordance with the invention. The words “including”, “comprising”, “having”, and “with” as used herein are to be interpreted broadly and comprehensively and are not limited to any physical interconnection. Moreover, any embodiments disclosed in the subject application are not to be taken as the only possible embodiments. Other embodiments will occur to those skilled in the art and are within the scope of the following claims.