Abstract:
The invention relates to a control device for controlling a plurality of network nodes of a computer network, comprising a master computing means for controlling the network nodes in accordance with a program, which master computing means assigns at least one program to each network node, comprising a control logic which is configured to group the network nodes in accordance with the programs assigned to these network nodes in each case and to transmit the same program in parallel to those network nodes of the same group which have been assigned this same program by the master computing means. The invention further relates to a method for operating a computer network and to a computer network.

Description:
RELATED APPLICATIONS 
       [0001]    The presently disclosed subject matter claims the benefit of U.S. Provisional Patent Application Ser. No. 61/444,437 filed Feb. 18, 2011, and German Patent Application No. 10 2011 004 363.2-31 filed Feb. 18, 2011, the disclosures of which are incorporated herein by reference in their entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The invention relates to a control device for controlling a plurality of network nodes of a computer network. The invention further relates to a method for operating a computer network and to a computer network. 
       TECHNICAL BACKGROUND 
       [0003]    The present invention is found in the field of networked systems such as computer networks or bus systems. A computer network is a combination of different technical, primarily stand-alone electronic systems, such as computers, sensors, actuators, functional components, etc., hereinafter referred to in brief as nodes of network nodes, the possibility of central management of nodes of the computer network being of particular importance in this case. 
         [0004]    A conventional and advantageous architecture for centrally organised management of the nodes is the so-called master-slave architecture, which is a form of hierarchical management of access to a common resource, such as a memory. In a computer network constructed in a master-slave architecture, one node acts as master and all other node are the slaves. Only the master has the right to access the common resource without being prompted. These masters thus act as control devices for controlling the other network nodes of the same computer network, which operate as slaves. The present invention and the problem on which it is based are described below with reference to a master-slave computer network in an aircraft, without limiting the invention to that effect. 
         [0005]    In order to control the slaves in a master-slave computer network, the master produces control commands individually for all slaves which it is to control and transmits these control commands to the corresponding slaves, usually in a fixed time-slot pattern. In most master-slave computer networks, a single master controls all available slaves. A network of this type is also referred to as a single-master network. 
         [0006]    In addition to these control tasks for controlling the slaves, a master usually also performs further computing tasks, for example reading in, storing and monitoring sensor data, producing real-time data, etc. The computing load of the master and thus the operability of the master-slave computer network thus depend substantially on the computing power of the master, the computing and control tasks thereof and the number of slaves which must be controlled by the master. This is not critical when there are a low number of slaves. However, it is problematic when the master-slave computer network comprises a plurality of 1000 or more slaves which are each controlled by the same master. Computer networks of this type comprising over 1000 slaves are used, for example, in an aircraft in the cabin networking, such as the cabin lighting, in-flight management, etc. In this case, the computing load of the master increases in accordance with the number of slaves it controls. 
         [0007]    A master in an extensive master-slave computer network of this type must, in the time-slot pattern preset for said master, produce the control commands for all the slaves and transmit said control commands to the respective slaves. A very high computational effort by the master is required to produce and transmit the control commands. Depending on priority, the master cannot perform further computing tasks during this time or the slaves are controlled with a correspondingly time delay. 
         [0008]    In this case, the computational effort of producing the control commands scales approximately linearly with the number of slaves to be controlled by the master. If a master requires, for example, 5 ms to produce a control command for one slave, the master thus already requires approximately 500 ms to produce the control commands for 100 slaves and even 5 s for 1000 slaves. 
         [0009]    If the master of a network does not have sufficient computing resources to perform additional calculations in a preset time in addition to producing the control commands, this inevitably leads to delayed reactions of the master, which causes, for example, loss of comfort when controlling nodes of a computer network in an aircraft. 
         [0010]    Therefore, in order still to be able to perform further computing tasks in parallel with the production of the control commands for the slaves, a plurality of computing means are usually used which, for example, perform the necessary calculations independently of the master. However, the use of further computing means increases the complexity and in particular also the cost of a computer network. In addition, the installation effort, the maintenance effort and the associated costs also increase as a result. 
       SUMMARY OF THE INVENTION 
       [0011]    Against this background, an object of the present invention is to reduce the computing load of the master computing means in a master-slave computer network. 
         [0012]    According to the invention, this object is achieved by a control device having the features of claim  1 , a computer network having the features of claim  8  and a method having the features of claim  10 . 
         [0013]    The following are accordingly provided:
       A control device for controlling a plurality of network nodes of a computer network, comprising a master computing means for controlling the network nodes in accordance with a program, which master computing means assigns at least one program to each network node, comprising a control logic which is configured to group the network nodes in accordance with the programs respectively assigned to these network nodes and to transmit the same program in parallel to those network nodes of the same group which have been assigned this same program by the master computing means.   A computer network, in particular a computer network in an aircraft, which network is formed as a master-slave computer network, comprising a plurality of network nodes and comprising a control device according to the invention for controlling the plurality of network nodes.   A method for operating a computer network, comprising the following steps: providing a master computing means and a plurality of network nodes of a computer network; grouping the network nodes which are to be operated using the same program by the master computing means into a respective group of network nodes; transmitting in parallel to the network nodes of the same group a program which is to be transmitted to the same network nodes in each case by the master computing device.       
 
         [0017]    The knowledge on which the present invention is based is that the sequential provision and transmission of the programs for all the network nodes is a very computationally intensive process, in particular when there are a large number of network nodes. The idea on which the present invention is based consists in restructuring the process of producing and transmitting the programs and decoupling said process from the master computing means to the greatest possible extent. In this case, a control logic is provided which is to support the master computing means by taking on in particular the transmission of the programs to the network nodes and thus reducing the load on the master control means, at least in part. 
         [0018]    According to the invention, the master computing means produces a series of programs which may contain a plurality of program commands and which are to be transmitted to the network nodes. The master computing means also forms for each node an allocation between the corresponding network node and one of the produced programs. The main computer advantageously produces the programs and allocations when the master or the network is started up. 
         [0019]    Based on the allocations, the control logic determines which program corresponds to which network node and groups network nodes which have been assigned the same program into a common group. The control logic then transmits the respective programs to the corresponding groups of network nodes. Since the control logic and not the master computing means now transmits the programs, the computing means is available for further computing processes while the control logic transmits the programs. 
         [0020]    According to the invention, the master computing means is provided merely to produce new programs and allocations and store them in the memory in the event that the previous programs and allocations are to be changed. This generally takes place only once, immediately after the master of the computer network is started up. In the case of a program which is to be transmitted to more than one network node, the master computing means only needs to produce this program once and then allocate it to the corresponding network nodes. This further reduces the load on the master computing means. Once the programs and allocations have been produced, the computing resources of the master computing means are not further loaded by the transmission of the programs and can be used for other tasks. 
         [0021]    The control logic is in particular formed to transmit programs which are to be allocated to more than one network node to these network nodes in parallel. In this case, the control logic can process the programs in parallel and/or parallelise the actual transmission of the programs via a network. If the individual programs are transmitted in parallel via a network, a program is transmitted only once and in this case is addressed simultaneously to all corresponding network nodes. In this case, the parallel transmission of the programs reduces the load on the control logic, which needs to process programs only once, even when these programs must be transmitted to a plurality of network nodes. In addition, the load on the network is also reduced, since a program which must be transmitted to a plurality of network nodes is merely addressed to a plurality of nodes and is not transmitted physically via the network a plurality of times. 
         [0022]    Advantageous embodiments and developments emerge from the dependent claims and from the description with reference to the figures. 
         [0023]    In an embodiment, a memory is provided in which the programs allocated to the network nodes, group information of the allocation of the programs to the respective network nodes, and length information about the respective program length are stored. If a separate memory for this information is provided, the control logic can access any components of the programs, the group information, the allocations and the length information at any time and independently of the master computing means. An efficient and independent transmission of the programs to the network nodes by the control logic is made possible as a result. 
         [0024]    In a further embodiment, the memory comprises a program memory which is formed to store the programs allocated to the network nodes. The memory further comprises an allocation memory which is formed to store the at least one allocation of the network nodes to a group of network nodes and the program lengths of the respective programs. If the memory is divided into a program memory and an allocation memory, it is possible to store the programs, the group information of the allocations, and the length information in an orderly and structured manner. As a result, the master computing means and the control logic can access this data efficiently. 
         [0025]    In a further embodiment, the program memory and the allocation memory are physically arranged in a common memory, for example in a DRAM or SRAM, and are only separated from each other logically, for example as separate storage regions of a common memory address space. In an alternative embodiment to this, the program memory and the allocation memory are designed in a physically separated manner as separate memories. 
         [0026]    Typically, but not necessarily, a program assigned to a group of network nodes consists of a number of program commands, the control logic being formed to transmit the number of program commands in succession to the network nodes in accordance with a preset sequence. Dividing a program into a plurality of program commands and transmitting these program commands in a preset sequence to the network nodes makes it possible to configure the individual programs in a flexible manner and thus control the network nodes in a flexible manner. 
         [0027]    In a further embodiment, in each case a program counter is provided which continuously determines the number of respectively transmitted program commands of a program. In a further embodiment, the control logic is also formed to stop the transmission of the program to the network nodes if the number, determined by the program counter, of transmitted program commands of this program corresponds to the length information, stored in the allocation memory, of the corresponding program length of this program. This makes it possible for the control logic to control the transmission of the programs to the network nodes precisely, in other words it is always ensured that each command or each instruction of a program has also been transmitted to the network node. 
         [0028]    In a further embodiment, a program command comprises at least a single interpretable order and/or at least a single executable instruction. If interpretable orders are transmitted to a network node, a functionality provided on this network node interprets these orders accordingly and responds with a corresponding response on the basis of the respective order. If, on the other hand, executable instructions are transmitted to a network node, then the network node can store these and take on a new functionality on the basis of these instructions. This process is also referred to as flash programming, flash update or even simply update. 
         [0029]    In a further embodiment, the control logic is formed to transmit programs once and/or cyclically. If programs are transmitted to the network nodes once, it is possible to execute effectively the programs which, for example, are necessary for starting up a network node, but which are not required during the operation of a network node. By contrast, a cyclic transmission of programs makes it possible to perform a function of a network node repeatedly. If the same program in each case is transmitted a plurality of times for this purpose, memory resources for the repeated storage of the program can be saved. 
         [0030]    In an embodiment, more than 100, in particular more than 1000 network nodes are provided, which are connected to the control device via a bus system. The control device according to the invention is thus adapted to requirements of modern computer networks and is very effectively capable of operating the individual network nodes without excessively long delays. 
         [0031]    The above configurations and developments can be combined with each other as desired, within reason. Further possible configurations, developments and implementations of the invention also comprise not explicitly mentioned combinations of features of the invention which are described above or below in relation to the embodiments. In particular, the person skilled in the art will also add individual aspects as improvements or supplements to the respective basic form of the present invention. 
     
    
     
       SUMMARY OF THE DRAWINGS 
         [0032]    The present invention is described in detail below with reference to the embodiments given in the schematic figures of the drawings, in which: 
           [0033]      FIG. 1  shows an embodiment of a control device according to the invention; 
           [0034]      FIG. 2  shows a further embodiment of a control device according to the invention; 
           [0035]      FIG. 3  shows an embodiment of a computer network according to the invention; 
           [0036]      FIG. 4  is a flow diagram of a method according to the invention. 
       
    
    
       [0037]    The appended drawings are intended to facilitate further understanding of the embodiments of the invention. They show embodiments and serve, in connection with the description, to illustrate principles and strategies of the invention. Other embodiments and many of the advantages mentioned emerge with regard to the drawings. The elements of the drawings are not necessarily shown to scale in relation to each other. 
         [0038]    In all the figures, like or functionally like elements and devices have been provided with like reference numerals, unless stated otherwise. 
       DESCRIPTION OF EMBODIMENTS 
       [0039]      FIG. 1  shows an embodiment of a control device  1  according to the invention. The control device  1  comprises a master computing means  2  which provides programs P 1 -P m  for network nodes T 1 -T n . The control device  1  further comprises a control logic  3  which is coupled to the master computing means  2  and is formed to transmit the programs P 1 -P m  to the network nodes T 1 -T n . 
         [0040]    The master computing means  2  is formed as a program-controlled means, for example as a microcontroller, microprocessor, digital signal processor or the like, but could also be formed as a programmable logic circuit, such as a PLD or FPGA. In a further embodiment, the master computing means  2  can also be designed as a computer program product component of a computer. The master computing means  2  provides in each case at least one program P 1 -P m  for a respective network node T 1 -T n . The master computing means  2  can also provide the same program P 1 -P m  for more than one network node T 1 -T n . 
         [0041]    In the embodiment shown in  FIG. 1 , the control logic  3  is formed as an application-specific circuit (ASIC) which receives the programs P 1 -P m  from the master computing means  2 . In a further embodiment, the control logic  3  can also be formed as a PLD, CPLD, FPGA, DSP or the like, The control logic  3  groups the network nodes T 1 -T n  according to the provided programs P 1 -P m  and transmits the individual programs P 1 -P m  to the network nodes T 1 -T n . If two or more network nodes T 1 -T n  are grouped in a common group, the control logic  3  transmits a respective program P 1 -P m  in parallel to the network nodes T 1 -T n  which are grouped together. 
         [0042]    In  FIG. 1 , the connection between the master computing device  2  and the control logic  3  is designed as a direct parallel digital connection via which the master computing means  2  supplies the programs P 1 -P m  to the control logic  3 . In a further embodiment, the connection can also be designed as a serial digital connection. 
         [0043]      FIG. 2  shows a further embodiment of a control device  1  according to the invention.  FIG. 2  differs from  FIG. 1  in that the connection between the master computing means  2  and the control logic  3  is not a direct point-to-point connection. Instead, a memory  4  is provided which is arranged between the master computing means  2  and the control logic  3  and couples the computing means  2  and the control logic  3  to each other. The memory  4  comprises a program memory  5  and an allocation memory  6 . In addition, the control logic  3  in  FIG. 2  is coupled to at least one program counter  7 . In this case, the program counter  7  is shown by a solid line. Further theoretically possible program counters  7  are shown by dashed lines. The program counter  7  can also be a component of the control logic  3 . 
         [0044]    The memory  4  in  FIG. 2  comprises two separate memories: a program memory  5  and an allocation memory  6 . In the embodiment shown in this case, the memory  4  is designed as a parallel random access memory (RAM) which both the master computing means  2  and the control logic  3  can access. In the embodiment shown, the memory  4  consists of two separate memory modules. In an alternative embodiment, the program memory  5  and the allocation memory  6  are provided in a common memory module. In further embodiments, the memory  4  can be provided as at least one serial memory module, for example an I 2 C memory module or an SPI memory module. It would also be conceivable for the memory  4  to be designed as a hard-disk storage unit, a memory drive, for example a CD drive having write capability, or the like. In these cases, the program memory  5  and the allocation memory  6  are coupled to the memory  4  via an IDE interface, a SATA interface, an eSATA interface, a Firewire interface, a USB interface or the like. 
         [0045]    The program memory  5  of the memory  4  in  FIG. 2  is formed to store the programs P 1 -P m  provided by the master computing means  2 . The programs P 1 -P m  consist of individual program commands Pb 1 -Pb x . In this case, an individual program P 1 -P m  can consist for example of five program commands Pb 1 -Pb 5  and a second program P 1 -P m  can consist of  10  program commands Pb 5 -Pb 15 . In a further embodiment, programs P 1 -P m  in the memory  4  can also overlap. A first program P 1 -P m  can for example consist of 15 program commands Pb 1 -Pb 15 . A second program P 1 -P m  can in this case form a subprogram P 1 -P m  of the first program P 1 -P m , which subprogram consists of the program commands Pb 5 - Pb 10 . 
         [0046]    The at least one program counter  7  in  FIG. 2  is shown as an external counter of the control logic  3 . In a further embodiment, the program counter  7  is designed as an internal element of the control logic  3  or as a component of the memory  4 . In an embodiment, one program counter  7  is provided per group of network nodes T 1 -T n . 
         [0047]      FIG. 3  shows an embodiment of a computer network  10  according to the invention. The computer network  10  comprises a control device  1  according to the invention, as shown for example in  FIGS. 1 and 2 . In this case, the control device  1  is coupled to the network nodes T 1 -T n  via a network bus  11 . Network nodes T 1 , T 2 , T 3  and T 4  are directly coupled to the network bus  11 . Network nodes T 5 , T 6  and T n  are coupled to network node T 4 , which thus takes on the function of a star distributor, also referred to as a hub or switch. 
         [0048]    In an embodiment, over 100 network nodes T 1 -T n  are provided in the computer network  10 . In a further embodiment, 1000 or more network nodes T 1 -T n  are provided in the computer network. In yet another embodiment, more than one control device  1  is provided in the computer network. For example, one control device  1  can control a first set of 1000 network nodes T 1 -T n  and a second control device  1  can control a second set of 1000 network nodes T 1 -T n . 
         [0049]    In the embodiment shown in  FIG. 3 , the network bus  11  is formed as an Ethernet network bus. In further embodiments, the network bus  11  is formed as a CAN bus, an ARINC bus, a Profibus or another field bus architecture. The network bus  11  can be formed as an electrical, optical, or wireless or radio network bus, for example as a ZigBee network bus, etc. 
         [0050]      FIG. 4  is a flow diagram of a method according to the invention. 
         [0051]    In a first step S 1 , a master computing means  2  and a plurality of network nodes T 1 -T n  of a computer network  10  are provided. 
         [0052]    In a second step S 2 , the network nodes T 1 -T n  which are to be operated by the master computing means  2  using the same programs P 1 -P m  are grouped into a group of network nodes T 1 -T n  in each case. The control logic  3  groups the network nodes T 1 -T n  according to the provided programs P 1 -P m . If an individual program P 1 -P m  is assigned to two or more network nodes T 1 -T n , then these network nodes T 1 -T n  are grouped into a common group by the control logic  3 . 
         [0053]    In a final step S 3  of the method according to the invention, a program P 1 -P m , which is to be transmitted from the master computing means  2  to the same network nodes T 1 -T n  in each case, is transmitted in parallel to the network nodes T 1 -T n  of the same group. In this context, in parallel means that the control logic performs the processing and computing operations for transmitting a program P 1 -P m  only once for each group. The programs P 1 -P m  are then transmitted in parallel, in series or in a single message, dependent on the selected network type which connects the network nodes T 1 -T n  to the control device  1 . If the transmission via the network  10  takes place in parallel, a plurality of messages having the same content are transmitted simultaneously to different receivers. If the transmission takes place in series, the messages for the individual network nodes T 1 -T n  are transmitted in succession on the network  10 . If the transmission takes place in a single message, then the one message is addressed to a plurality of network nodes and transmitted once, for example in an IP multicast transmission. 
         [0054]    Although the present invention has been described above with reference to preferred embodiments, it is not limited thereto but can be modified in various ways. In particular, the invention can be changed or modified in many different ways without departing from the core of the invention. 
         [0055]    The present invention is not limited to the application in the cabin region of a passenger aircraft but can also be used, for example, very advantageously in automation technology, for example in building automation or vehicle automation, in which there are also often more than 1000 slaves per master. 
       LIST OF REFERENCE NUMERALS 
       [0056]      1  control device 
         [0057]      2  master computing means 
         [0058]      3  control logic 
         [0059]      4  memory 
         [0060]      5  program memory 
         [0061]      6  allocation memory 
         [0062]      7  program counter 
         [0063]      10  computer network 
         [0064]      11  network bus 
         [0065]    P 1 -P m  program 
         [0066]    Pb 1  program command 
         [0067]    Pb x  program command 
         [0068]    S 1 -S 3  method step 
         [0069]    T 1 -T n  network node