US20170039125A1 - System of implementing deterministic real-time, distributed and synchronized for control applications, test and measurement - Google Patents

System of implementing deterministic real-time, distributed and synchronized for control applications, test and measurement Download PDF

Info

Publication number
US20170039125A1
US20170039125A1 US15/198,147 US201615198147A US2017039125A1 US 20170039125 A1 US20170039125 A1 US 20170039125A1 US 201615198147 A US201615198147 A US 201615198147A US 2017039125 A1 US2017039125 A1 US 2017039125A1
Authority
US
United States
Prior art keywords
modules
time
execution
deterministic
distributed
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.)
Abandoned
Application number
US15/198,147
Inventor
Nestor Hugo Oliverio
Marc Almendros Parra
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keysight Technologies Singapore Sales Pte Ltd
Original Assignee
Keysight Technologies Singapore Holdings Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keysight Technologies Singapore Holdings Pte Ltd filed Critical Keysight Technologies Singapore Holdings Pte Ltd
Assigned to KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD. reassignment KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OLIVERIO, NESTOR HUGO, PARRA, MARC ALMENDROS
Publication of US20170039125A1 publication Critical patent/US20170039125A1/en
Assigned to KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD. reassignment KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Priority to US16/286,691 priority Critical patent/US11106565B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3612Analysis of software for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3616Analysis of software for verifying properties of programs using software metrics
    • G06F11/3664
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • test and measurement running multiple simultaneous and I or actions very precise timing is very important.
  • Synchronously management and real-time action and multiple input I output control system, test or measure, is a challenge that has many disadvantages.
  • Some systems are implemented with a centralized master controller that monitors and controls all actions.
  • This controller performs the calculations and actions triggered measurement and control over the input and output peripherals, sensors and actuators.
  • the main controller can be, among other examples, a computer, a microcontroller or field programmable gate array (FPGA), according to the requirements of robustness, real-time and speed.
  • FPGA field programmable gate array
  • Trigger In general to solve synchronization a network of trigger signals (‘trigger’) between the different modules, depending on the capabilities of each module, looking to shoot sequentially, synchronously and accurately is used, the various actions measurement, test and control.
  • the system provides a special module include centralized generating trigger signals that can trigger actions in other modules.
  • This approach solves some problems propagation of triggers and improve accuracy, but still has major limitations when synchronizing multiple modules with requirements of cross shot signals.
  • the centralized approach does not allow shooting or too poor to integrate actions trigger the results of measurements and calculations distributed over several modules.
  • the objective technical problem that arises is therefore to provide means for the multi-module synchronized and deterministic processing in real time to time of the plurality of inputs I outputs of any control system, test and measurement.
  • the present teachings serve to solve the above problem, solving the drawbacks of the solutions discussed in the prior art by providing a system of deterministic distributed run-time control applications, test and measurement, which allows you to run hardware sequences and programs with full timing accuracy and synchronization between all modules that make up the system.
  • the present teachings relate generally to electronics and, in particular, to the industrial area of programmable systems to perform control functions, test and I or measurement.
  • the present teachings relate to a system for deterministic execution time (ie, precisely controlling the execution time of each action, totally repeatable and some randomness), distributed and synchronized control applications, test or measure, allowing multiple control instruments, test and measurement can perform a task running each of the shares with full time synchronization.
  • the present teachings are based on a deterministic processor time using a time deterministic processor (TDP) in time, which can be part of any computer hardware control module, test and measurement.
  • the processor may be implemented TDP on a microprocessor, an FPGA or an application specific integrated circuit (ASIC) device), FPGA or ASIC being the most convenient platform for giving higher performance.
  • the Deterministic Processor in Time allows executing instructions by hardware indicating with absolute precision execution time of each instruction and all modules of the control system, test and measurement, regardless of their function, for example, the generation modules all signal scanning, communications, digital inputs and outputs, etc., can incorporate adaptations same time deterministic processor, TDP.
  • This TDP enables distributed synchronized global actions to be processed and executed. These distributed synchronized global actions include, but are not limited to conditional jumps synchronized in all modules of the system according to the calculations, measurements or information from any of the modules.
  • One aspect of the present teachings relate to a system of distributed execution comprising a set of two or more modules to execute control applications, test and measurement, sharing at least one trigger signal and a clock signal, wherein all modules that together they comprise a deterministic processor time (TDP) using the common clock signal and at least one of the trigger signals shared by the modules to synchronize the execution of at least part of the set of modules (or full set).
  • TDP deterministic processor time
  • a single module may be implemented, in which case the synchronization capabilities would be used, but all other features and advantages of deterministic execution time would not be used.
  • the time deterministic processor comprises calibration capabilities to cancel the clock skew between modules.
  • the present teachings allow the user to program the hardware of different modules using an intuitive graphical environment for code generation text or command files (sometimes referred to as “scripting”).
  • Global synchronized actions such as synchronized global jumps are programmed extremely easily as if all the modules were a single device and the outside centralized execution.
  • the programming of the modules can be done by programming software that incorporates features check timing (‘timing’) and validation of real-time synchronization while programming, which allow you to work with multiple modules simultaneously and very simple.
  • timing features check timing
  • validation validation of real-time synchronization while programming
  • the teachings have all the advantages of modular architectures and provides a fully scalable mechanism distributed and synchronized implementation that provides absolute timing accuracy and is very simple to use and implement regardless of the number of modules in the system.
  • the teachings achieve a processing speed and unique synchronization, requiring only a single clock signal and a single trigger signal (trigger) multi-point, both common to all modules, regardless of the number of modules in the system.
  • the bias or skew synchronization between modules depends only on the bias signal clock (sometime referred to as “clock skew”) common to all modules, which is usually very low, and is independent of bias trigger signals, which usually has much higher values and the clock is very difficult to reduce in case of multi-point triggers.
  • the present teachings also contemplate the possibility of using multithreading Deterministic time in the same module that, by interlacing technique instruction by instruction, ensure accuracy of time, which in conventional processors is impossible.
  • the system also provides tools to debug the software that significantly simplify the implementation of control systems, test and measurement multi-module. For example, it has the possibility of introducing breakpoints that stop global execution in a moment of time in all system modules synchronously.
  • modules with TDP can coexist, and modules that do not include the technology described herein, because it of special instructions for generating and wait for trigger signals (triggers) in accordance with certain embodiments, can interact with these other modules, like with external events.
  • FIG. 1 shows a block diagram of the system architecture of distributed processing control modules, test and measurement, according to a representative embodiment.
  • FIG. 2 shows a block diagram of the architecture of a system module with distributed processing Time Deterministic processor, according to a representative embodiment.
  • FIG. 3 shows a block diagram of the architecture of the processor in Time Deterministic system, according to a representative embodiment.
  • FIG. 4 shows a diagram of the structure of the instructions used by the processor in Time Deterministic system, according to a representative embodiment.
  • FIG. 5 shows a diagram of the programming process, compilation and execution of instructions in the hardware of the system modules, according to a representative embodiment.
  • FIG. 6 a shows a graphical interface software programming tool multi-module synchronized to the system, with multiple windows flowchart of various system modules, according to a representative embodiment.
  • FIGS. 6B, 6C and 6D show a flowchart window respectively for each module, the multi-module of FIG. 6A graphical programming tool, according to a representative embodiment.
  • FIG. 1 shows a schematic diagram of the modular block architecture of the system for distributed execution control applications, test and measurement.
  • the system comprises multiple modules (M 0 , . . . , Mn) which, in turn, comprises a plurality of inputs I outputs (IO 0 , . . . , IO”) or port 1 I O.
  • the (M 0 , . . . , Mn) system modules perform control functions, test and measurement.
  • Each module (M 0 , . . . , Mn) connected to a common bus signals ( 120 ) to all modules (M 0 , . . . , Mn), comprising a control bus ( 120 a ) through which all the (M 0 , . . .
  • each (M 0 , . . . , Mn) module share one or more clock signals and one or more signals trigger or triggers.
  • the signal bus ( 120 ) may include one or more communication buses ( 120 b ) through which each module (M 0 , . . . , Mn) communicates with the rest and, optionally, with an external processor ( 130 ), which can be a PC, an embedded controller, etc.
  • each (M 0 , . . . , Mn) module can have one or more ports programming and debugging programming ( 110 ).
  • Each and every one of the (M 0 , . . . , Mn) as core modules have a TDP processor or processor in Time Deterministic ( 100 ).
  • the TDP is connected to the signal bus ( 120 ) and the rest of the TDP also independent module.
  • FIG. 2 more particularly shows the block diagram of the internal architecture of one of those (M 0 , . . . , Mn) system modules of FIG. 1 .
  • the device ( 201 ) communicates through the input I output (LOI) and the signal bus ( 120 ), with at least one clock signal and at least one signal common shooting for all modules (M 0 , . . . , Mn) system, requiring at least one trigger or trigger signal to perform synchronization between modules.
  • LOI input I output
  • Mn signal common shooting
  • FIG. 3 shows a block diagram of the architecture of Deterministic Processor in Time ( 100 ) is implemented with a core or common core ( 300 ) to all modules, ensuring the proper functioning of synchronization regardless of the type of instrument control, test and measurement, which is incorporated, and one or more specific blocks (P 0 , . . . , Pn) for implementing additional functions including the various specific functions that characterize each type of test and measurement module.
  • This architecture allows to easily incorporate new instructions to meet new requirements.
  • the core ( 300 ) of the TDP ( 100 ) processor communicates with other components ( 301 ): hardware, data memory, input I output, etc., the module and the common signal bus ( 120 ) all modules.
  • the core ( 300 ) of Deterministic Processor in Time ( 100 ) reads, from a memory ( 302 ) of program instruction words ( 303 ) used during program execution on the hardware.
  • the core ( 300 ) TDP ( 100 ) processes the instruction words ( 303 ) at the right time, executes the instructions for the core and also sends instructions about executioners (P 0 , . . . , Pn), which interpret and execute further instructions.
  • Each engine launcher can run one or more types of instructions ( 303 ) and may be one or more executioners of instructions (P 0 , . . . , Pn). Notably, the number and type of instructions executed depends on each specific instrument.
  • FIG. 4 shows the structure of instructions handles in Time Deterministic Processor ( 100 ).
  • the instruction word TDP processor ( 100 ) has a special structure to include at least one field (DW [ 1 ], DW [ 2 ]) the exact time of execution of each instruction word, which can be absolute time, or on the previous instruction. It also contains a control field (DW [ 0 j ) that allows enabling the execution of one or more instructions that can be placed flexibly in the instruction word.
  • the instruction word has a variable length depending on the needs of the module in question, the larger the word instructions can be executed simultaneously in each module which is a very important control systems, test and measurement advantage.
  • the TDP ( 100 ) processor has special instructions synchronized timing and conditional jumps, which allow a decision to spread all modules (M 0 , . . . , Mn) system and all running a conditional jump or other action under this decision with complete time synchronization. This is a unique feature of TDP ( 100 ). To achieve this full synchronization TDP ( 100 ) requires a single clock signal and a single trigger signal or trigger, both common signals to all modules (M 0 , . . . , Mn).
  • a trigger signal is a multi-point digital connection that connects all (M 0 , . . .
  • TDP 100
  • Mn modules together to form what is known as a “wired OR” or a “wired AND” according to the standard-drivers logical interface. If the system has with more than one of these trigger signals, such as the PXI Express platform has eight trigger signals, the TDP ( 100 ) can optionally make use of the additional trigger to increase the synchronization speed and repetition decisions and synchronized actions.
  • the TDP ( 100 ) processor can be integrated into the transfer Decisions communication buses ( 120 b ) available modules (M 0 . . . Mn).
  • the communication bus ( 120 b ) used by the deterministic processor time ( 100 ) is respectively a Peripheral Component Interconnect (PCI) bus, components or PCI Express bus.
  • PCI Peripheral Component Interconnect
  • PXI or PXI Express platform are a reference standard in control applications, test and measurement in most industries.
  • a PXI Express chassis has a printed circuit board backplane, which distributes across all modules the following signals: supply, a PCI Express bus, a clock of 100 MHz, CLK 100 , 10 MHz clock, CLK 10 , a signal sync referred to 100 MHz clock and provides a reference pulse to 10 MHz, SYNC 100 , and 8 trigger signals multi-point PXI trigger Bus, connecting all modules in a “wired aND” with logical drivers like “open collector”, among others.
  • the modules have an FPGA that communicates with a PC and with the specific hardware that makes up each specific type of instrument control, test and measurement.
  • PCI Express For communication between the PC and FPGA, PCI Express is used.
  • a known switch I controller such as switch I driver devices can be used.
  • the connection can be made directly to the FPGA.
  • the FPGA controls the PCI Express communication and other hardware components.
  • TDP 100
  • CLK 100 100 MHz clock
  • SYNC 100 the reference signal
  • Bias or skew in synchronization between modules depends only on 100 MHz clock skew in different slots in the chassis and is independent of bias trigger signals and reference SYNC 100 .
  • Clock skew depends only on the chassis used and is guaranteed to be less than 250 ps, although according to the chassis can be much lower and it can be significantly improved if an initial calibration is performed.
  • the user can select which of the 8 shot available on the PXI Express wants to allow to use the TDP ( 100 ) and the software manages the resources allocated.
  • PXI has not CLK 100 and SYNC 100 the signals, so that the embodiment is implemented using the 10 MHz clock, CLK 10 , and eight multi-trigger signals point.
  • PXI bus communication is used instead of PCI PCI Express.
  • FIG. 120 a Another representative embodiment is implemented on an LXI platform, LAN Extension for Instrumentation: Extension of Local Area Network Instrumentation—where the clock signal and trigger bus ( 120 a ) communicate between modules—a wired trigger bus can be provided in the LXI specification and where the communication bus ( 120 b ) consists of a Local Area Network (LAN).
  • LAN Local Area Network
  • microTCA Advanced Telecomunications Architecture
  • microTCA micro computing architecture advanced-telecommunications or some of its variants
  • the clock signal is communicated between modules using some of the various ports covered by the standard clock, CLK 1 , CLK 2 , CLK 3 , TCLKC or TCLKD, and trigger signals can communicate through ports 17 to 20 .
  • the communication bus ( 120 b ) can be selected between Ethernet, PCI Express and SRIO, Rapid Serial Input Output: Inputs Outputs in Series Fast, depending on the implementation of the system.
  • AXIe Extension for AdvancedTCA Instrumentation—where, similar to PXI Express, CLK 100 backplane signals and SYNC are used, and one or more of the trigger signals 12 MLVDS available and where the communication bus ( 120 b ) can be selected from a LAN connection or PCI Express.
  • the decision on which global action or conditional jump is executed and timing may depend on one or more modules (M 0 , . . . , Mn) system.
  • the TDP ( 100 ) has special synchronized execution instructions as the “Start” node that allows you to start running in all modules (M 0 , . . . , Mn) simultaneously.
  • the synchronized actions, synchronized diving and synchronization points can involve all (M 0 , . . . , Mn) system modules or only a subset of them.
  • the TDP ( 100 ) also has flow control instructions as while, if, for etc, both local and multi-module synchronized.
  • the TDP ( 100 ) also has instructions awaiting triggers generation and to interact with modules not incorporating a TDP ( 100 ) and with external events.
  • TDP How time consuming TDP ( 100 ), so until it completes execution TDP ( 100 ) can not process the next instruction word and execute the following instructions; Typical examples are the control instructions waiting, wait, or flow: while, for, if, etc.
  • Time consuming instructions are implemented in the core ( 300 ) of the TDP ( 100 ), while those not, can be implemented in both the core ( 300 ) and the instructions executers (P 0 , . . . , Pn).
  • the instructions that trigger you may be able to start multiple runs sequentially when the previous run is still ongoing and they are implemented using filters based on pipeline architecture.
  • the TDP ( 100 ) also has a deterministic time system threads or threads, which allows to include in each module (Mi) more than one thread that runs in parallel with an interlacing technique instruction by instruction. This technique ensures a deterministic distribution of instruction execution in all threads, ensuring accuracy of time.
  • the main thread running natively synchronized with other modules and semaphores and events that allow you to synchronize the different threads of the same module to each other are included. Furthermore choose whether you want to include any of the global instructions synchronized in one or more of the secondary threads.
  • FIG. 5 shows schematically the process of programming, implementation and compilation instructions TDP ( 100 ) of each (M 0 , . . . , Mn) module.
  • the user program the entire system or part of it, implementing a code for each of the modules (M 0 , Mn) involved in the application control, test and measurement.
  • the group is programmed with the ability to execute instructions in all of them in sync as if they were a single hardware and can also include specific local instructions for each module.
  • the source code written by the user can be graphic or text and provides graphic or script generation tools, as discussed above, that let you easily add multi-module synchronized instructions and specific to each local module.
  • the programming tool performs all checks for consistency of global and individual code and then compiles ( 510 ) the source code ( 511 ) of the group as a whole to obtain a compiled code ( 513 ), from which will generating a code execution (CM 0 , . . . , CMN) specific to each module (M 0 . . . Mn).
  • CM 0 , . . . , CMN code execution specific to each module
  • Mn a code execution
  • instructions for high-level user instructions can run the TDP ( 100 ), whose compiler ( 512 ) manages resources trigger and communication available to achieve automatically and transparently to the user synchronization become and sharing of decisions between (M 0 , . . . , Mn) modules.
  • the compiler ( 512 ) verifies the correct syntax for all instructions and that resources needed at all times for execution.
  • the entered code ( 500 ) by the user compiled to generate the specific executable code (CM 0 , . . . , CMN) for each module (M 0 . . . Mn) and, during compilation, the compiler ( 512 ) TDP ( 100 ) generates the need for synchronization of each of the global synchronization instructions analyzing each section code.
  • the programming tool and compilation usually runs on a computer, but could run on any other platform, and also the programming and compilation tool could run on different platforms.
  • CMN CMN generated for each module are downloaded to all group modules and then the code is executed by the TDP ( 100 ) synchronously in the hardware of each system module ( 530 ).
  • Downloading executable code (CM 0 , . . . , CMN) each (M 0 module . . . Mn) and control running and debugging ( 520 ), using graphical tools ( 521 ), command ( 522 ) and I or library ( 523 ), can be made by the same communication bus ( 120 b ) connecting all modules (M 0 , . . . , Mn) between themselves and with the PC or system controller if available, or through a port specific programming available in each module.
  • FIG. 6A For programming the hardware system ( 530 ) it is counted with a graphic software, as shown in FIG. 6A which allows easily programmed each module by one or more flowcharts, as shown in detail by way of example in FIG. 6B-6D .
  • the software allows you to select which group of modules you want to work in sync and create a project. Once the project is created has a flow diagram window per module, a window of further flow diagram for each thread and additional editing windows and configuration instructions, debugging, etc.
  • a properties window ( 640 ), where some general parameters for scheduling the execution of the selected element at all times and special instructions of the element are configured, along with three windows diagram shown flow: A flow diagram window ( 600 ) to a first module, shown in detail as an example in FIG. 6B ; another window ( 601 ) for a second module, shown in detail as an example in FIG. 6C ; and a third ( 602 ) to a third module, as shown in detail in FIG. 6D example.
  • the software allows you to program all modules simultaneously and automatically manages the global synchronized items.
  • the software allows you to save the project and then loaded with the same graphic software, user libraries or other code editing environment.
  • the hardware implementation code can be integrated into any user application.
  • libraries user can, start, pause, stop the execution, as well as exchange data and events between the PC and modules.
  • the software allows to download the program for each module group, run and debug the program, inspecting variables, state of TDP ( 100 ) and insert breakpoints or breakpoints, local and global.
  • the user can move freely break global points within each section to adjust the exact stopping point of each module.
  • each module is composed of instruction boxes and arrows of time as shown in FIGS. 6A-6D .
  • the arrows interconnecting a source element with a destination element and the flowchart correspond to a given instant of execution of the target element relative to the source element.
  • Beat arrows indicate the exact time specified in nanoseconds (ns) in the 6 B- 6 D, in which the execution of the next instruction will start from the previous.
  • Instruction boxes may contain actions, calculations, flow control instructions, data transfer, etc.
  • the instructions can be local to the module or multi-module global synchronized.
  • the synchronized elements ( 610 , 611 , 612 , 613 ) are inserted into one of the modules and are automatically replicated in the other modules in the group.
  • the software generates the need to maintain synchronization and propagate decisions transparent to the user to ensure the implementation of all the boxes synchronized at the same instant of time code.
  • Boxes or local elements ( 620 , 621 , 622 , 623 , 624 , 625 , 626 , 627 , 628 ) of each module can maintain synchronism or not.
  • Boxes or local control structures that maintain synchronism are those that trigger actions and not time-consuming or time consuming but it is known at compile time before execution. Boxes or local control structures of sync are those whose runtime can not be known at compile time, for example a While command ( 621 ) with a variable, or Wait command of an external event.
  • the software ensures synchronized execution of the boxes corresponding to synchronized elements ( 610 , 611 , 612 , 613 ), that allows each section between synchronized global elements can be analyzed separately.
  • the software can determine with precision the execution time of each local instruction with respect to the synchronized starting node of the section and thus automatically adjust the time of the last arrow before the box synchronization end of the stage and achieve so all modules execute the synchronized element 5 final stretch at the same time. If any of the local branches of synch, the software may not accurately determine the time of the boxes from the point of sync, but the synchronism between all modules in the synchronized box end of the section in question will recover: this is done with an additional procedure and is indicated by the dotted line at the end of the section ( 630 ). For example, in FIG.
  • the 10 property “Time” of the selected local box ( 624 ) indicates that the box will run as minimum 140 ns after the synchronization point immediately above, but may take longer to run indefinitely depending on how many local instruction cycles While ( 621 ) running before the selected box ( 624 ) is repeated.
  • the software manages multi-module synchronization transparently to the user while programming is done thus synchronized boxes are displayed aligned with all modules and times are adjusted in real time. This makes the multi-module programming is very simple, as if a single device be scheduled.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

System deterministic execution time, distributed and synchronized control applications, test and measurement. System synchronized distributed deterministic execution time for modules (M0, . . . , Mn) control, test and measurement that share at least one trigger signal and a clock signal and comprising a deterministic processor time, using the clock signal and one or more of the trigger signals shared by all modules (M0, . . . , Mn) to run a program distributed modules (MO, . . . , Mn) with precise control the moment of execution of each instruction and synchronize the execution of all or part of the set of modules (M0, . . . , Mn). The time deterministic processor communicates with a common signal bus to all (M0, . . . , Mn) modules, comprising a control bus which share the clock and trigger signals. Optionally, the signal bus includes a communication bus with which the time deterministic processor and the (M0, . . . , Mn) communicates modules together and optionally with a processor or external computer.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • The present application claims priority under 35 U.S.C. §119(e) from Spanish Patent Application No. 201531155 filed on Aug. 3, 2015 naming Nestor Hugo Oliverio, et al. as inventors. The entire disclosure of Spanish Patent Application No. 201531155 is specifically incorporated herein by reference.
  • BACKGROUND
  • The requirements of control systems, test and measurement have grown enormously in complexity in recent years, requiring increasing number of inputs I outputs, and increased capacity and processing speed and synchronization.
  • In control systems, test and measurement running multiple simultaneous and I or actions very precise timing is very important.
  • Synchronously management and real-time action and multiple input I output control system, test or measure, is a challenge that has many disadvantages.
  • And these problems grow significantly in complexity with increasing the number of channels and speed systems.
  • To attack this problem, test systems and current measurement using different architectures, as explained below.
  • Some systems are implemented with a centralized master controller that monitors and controls all actions.
  • This controller performs the calculations and actions triggered measurement and control over the input and output peripherals, sensors and actuators.
  • The main controller can be, among other examples, a computer, a microcontroller or field programmable gate array (FPGA), according to the requirements of robustness, real-time and speed. Being a centralized controller, all tasks must be performed and synchronized from a single device, which significantly limits the speed and capabilities of the system. This limitation increases significantly with the number of inputs and outputs of the system and the complexity of the tasks to be performed. All this results in performance (‘performance’) and a precision in limited time. Also scalability as required is also very restricted, so generally centralized processing systems require custom designed for each application.
  • The current trend is therefore the use modular architectures in control systems, test and measurement. Thus maximum flexibility is achieved in terms of scalability, possibility of using standard products from different vendors, ease of repair and renovation, etc. Some of these systems, the most modern, also incorporate the latest technologies in digital processing, such as FPGA and embedded processors that allow for a large processing capacity in each module. The major drawback of these systems is the ability to precisely synchronize all actions of the different modules and calculations in a distributed manner to implement the complete solution of test, measurement and control.
  • In general to solve synchronization a network of trigger signals (‘trigger’) between the different modules, depending on the capabilities of each module, looking to shoot sequentially, synchronously and accurately is used, the various actions measurement, test and control.
  • In many cases the propagation time of these signals has a major drawback limiting system accuracy and also the complexity grows significantly with the number of modules involved.
  • The implementation of these systems with shooting techniques (triggers) is usually very complex and requires a lot of development work and commissioning.
  • Furthermore, as the number of trigger signals is limited, the possibilities and flexibility are too.
  • On some platforms, such as PXI Express, the system provides a special module include centralized generating trigger signals that can trigger actions in other modules.
  • This approach solves some problems propagation of triggers and improve accuracy, but still has major limitations when synchronizing multiple modules with requirements of cross shot signals.
  • In addition, the centralized approach does not allow shooting or too poor to integrate actions trigger the results of measurements and calculations distributed over several modules.
  • The objective technical problem that arises is therefore to provide means for the multi-module synchronized and deterministic processing in real time to time of the plurality of inputs I outputs of any control system, test and measurement.
  • SUMMARY
  • The present teachings serve to solve the above problem, solving the drawbacks of the solutions discussed in the prior art by providing a system of deterministic distributed run-time control applications, test and measurement, which allows you to run hardware sequences and programs with full timing accuracy and synchronization between all modules that make up the system.
  • The present teachings relate generally to electronics and, in particular, to the industrial area of programmable systems to perform control functions, test and I or measurement.
  • More particularly, the present teachings relate to a system for deterministic execution time (ie, precisely controlling the execution time of each action, totally repeatable and some randomness), distributed and synchronized control applications, test or measure, allowing multiple control instruments, test and measurement can perform a task running each of the shares with full time synchronization.
  • The present teachings are based on a deterministic processor time using a time deterministic processor (TDP) in time, which can be part of any computer hardware control module, test and measurement. According to various representative embodiments, the processor may be implemented TDP on a microprocessor, an FPGA or an application specific integrated circuit (ASIC) device), FPGA or ASIC being the most convenient platform for giving higher performance. The Deterministic Processor in Time (TDP) allows executing instructions by hardware indicating with absolute precision execution time of each instruction and all modules of the control system, test and measurement, regardless of their function, for example, the generation modules all signal scanning, communications, digital inputs and outputs, etc., can incorporate adaptations same time deterministic processor, TDP. This TDP enables distributed synchronized global actions to be processed and executed. These distributed synchronized global actions include, but are not limited to conditional jumps synchronized in all modules of the system according to the calculations, measurements or information from any of the modules.
  • The spread of the decisions and implementation of global actions are performed with full synchronization in all modules and automatically and transparently to the user.
  • One aspect of the present teachings relate to a system of distributed execution comprising a set of two or more modules to execute control applications, test and measurement, sharing at least one trigger signal and a clock signal, wherein all modules that together they comprise a deterministic processor time (TDP) using the common clock signal and at least one of the trigger signals shared by the modules to synchronize the execution of at least part of the set of modules (or full set).
  • In accordance with various representative embodiments, a single module may be implemented, in which case the synchronization capabilities would be used, but all other features and advantages of deterministic execution time would not be used.
  • In the system of distributed execution proposed accuracy runtimes and synchronization between modules it depends exclusively on the bias or skew and fluctuations (i.e., jitter) of the common clock signal to all modules and in particular the time deterministic processor comprises calibration capabilities to cancel the clock skew between modules.
  • Some of the technical advantages of the various embodiments against the solutions of prior art are:
  • The present teachings allow the user to program the hardware of different modules using an intuitive graphical environment for code generation text or command files (sometimes referred to as “scripting”).
  • Global synchronized actions, such as synchronized global jumps are programmed extremely easily as if all the modules were a single device and the outside centralized execution.
  • At any time you can control with precision temporary total actions implemented in any of the modules.
  • The programming of the modules can be done by programming software that incorporates features check timing (‘timing’) and validation of real-time synchronization while programming, which allow you to work with multiple modules simultaneously and very simple.
  • The teachings have all the advantages of modular architectures and provides a fully scalable mechanism distributed and synchronized implementation that provides absolute timing accuracy and is very simple to use and implement regardless of the number of modules in the system.
  • The teachings achieve a processing speed and unique synchronization, requiring only a single clock signal and a single trigger signal (trigger) multi-point, both common to all modules, regardless of the number of modules in the system.
  • This significantly simplifies the requirements of interconnections between the modules with respect to current systems generally require many triggers, and to specific modules whose only function is to generate the triggers to synchronize the other modules.
  • In accordance with a representative embodiment, the bias or skew synchronization between modules depends only on the bias signal clock (sometime referred to as “clock skew”) common to all modules, which is usually very low, and is independent of bias trigger signals, which usually has much higher values and the clock is very difficult to reduce in case of multi-point triggers.
  • The present teachings also contemplate the possibility of using multithreading Deterministic time in the same module that, by interlacing technique instruction by instruction, ensure accuracy of time, which in conventional processors is impossible.
  • The system also provides tools to debug the software that significantly simplify the implementation of control systems, test and measurement multi-module. For example, it has the possibility of introducing breakpoints that stop global execution in a moment of time in all system modules synchronously.
  • In accordance with the present teachings, modules with TDP can coexist, and modules that do not include the technology described herein, because it of special instructions for generating and wait for trigger signals (triggers) in accordance with certain embodiments, can interact with these other modules, like with external events.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • It then goes on to describe very briefly a series of drawings that help to better understand the present teachings and which are expressly related to certain representative embodiments presented as a non-limiting example thereof.
  • FIG. 1 shows a block diagram of the system architecture of distributed processing control modules, test and measurement, according to a representative embodiment.
  • FIG. 2 shows a block diagram of the architecture of a system module with distributed processing Time Deterministic processor, according to a representative embodiment.
  • FIG. 3 shows a block diagram of the architecture of the processor in Time Deterministic system, according to a representative embodiment.
  • FIG. 4 shows a diagram of the structure of the instructions used by the processor in Time Deterministic system, according to a representative embodiment.
  • FIG. 5 shows a diagram of the programming process, compilation and execution of instructions in the hardware of the system modules, according to a representative embodiment.
  • FIG. 6a —shows a graphical interface software programming tool multi-module synchronized to the system, with multiple windows flowchart of various system modules, according to a representative embodiment.
  • FIGS. 6B, 6C and 6D—show a flowchart window respectively for each module, the multi-module of FIG. 6A graphical programming tool, according to a representative embodiment.
  • REPRESENTATIVE EMBODIMENTS
  • Then possible embodiments of the distributed execution system proposed for control systems, test and measurement are described.
  • FIG. 1 shows a schematic diagram of the modular block architecture of the system for distributed execution control applications, test and measurement. The system comprises multiple modules (M0, . . . , Mn) which, in turn, comprises a plurality of inputs I outputs (IO0, . . . , IO”) or port 1 I O. The (M0, . . . , Mn) system modules perform control functions, test and measurement. Each module (M0, . . . , Mn) connected to a common bus signals (120) to all modules (M0, . . . , Mn), comprising a control bus (120 a) through which all the (M0, . . . , Mn) modules share one or more clock signals and one or more signals trigger or triggers. Furthermore the signal bus (120) may include one or more communication buses (120 b) through which each module (M0, . . . , Mn) communicates with the rest and, optionally, with an external processor (130), which can be a PC, an embedded controller, etc. In addition, each (M0, . . . , Mn) module can have one or more ports programming and debugging programming (110). Each and every one of the (M0, . . . , Mn) as core modules have a TDP processor or processor in Time Deterministic (100). The TDP is connected to the signal bus (120) and the rest of the TDP also independent module. FIG. 2 more particularly shows the block diagram of the internal architecture of one of those (M0, . . . , Mn) system modules of FIG. 1.
  • The module (Mi), i=0, . . . , n, is implemented in a device whose components or hardware assembly (200) comprises in the core in the Time Deterministic Processor (100) which, in turn, can be implemented in a device (201) processing: FPGA, microprocessor, ASIC, etc.
  • The device (201) communicates through the input I output (LOI) and the signal bus (120), with at least one clock signal and at least one signal common shooting for all modules (M0, . . . , Mn) system, requiring at least one trigger or trigger signal to perform synchronization between modules.
  • FIG. 3 shows a block diagram of the architecture of Deterministic Processor in Time (100) is implemented with a core or common core (300) to all modules, ensuring the proper functioning of synchronization regardless of the type of instrument control, test and measurement, which is incorporated, and one or more specific blocks (P0, . . . , Pn) for implementing additional functions including the various specific functions that characterize each type of test and measurement module.
  • This architecture allows to easily incorporate new instructions to meet new requirements.
  • The core (300) of the TDP (100) processor communicates with other components (301): hardware, data memory, input I output, etc., the module and the common signal bus (120) all modules.
  • In addition, the core (300) of Deterministic Processor in Time (100) reads, from a memory (302) of program instruction words (303) used during program execution on the hardware. The core (300) TDP (100) processes the instruction words (303) at the right time, executes the instructions for the core and also sends instructions about executioners (P0, . . . , Pn), which interpret and execute further instructions. Each engine launcher can run one or more types of instructions (303) and may be one or more executioners of instructions (P0, . . . , Pn). Notably, the number and type of instructions executed depends on each specific instrument.
  • FIG. 4 shows the structure of instructions handles in Time Deterministic Processor (100). The instruction word TDP processor (100) has a special structure to include at least one field (DW [1], DW [2]) the exact time of execution of each instruction word, which can be absolute time, or on the previous instruction. It also contains a control field (DW [0 j) that allows enabling the execution of one or more instructions that can be placed flexibly in the instruction word. The instruction word has a variable length depending on the needs of the module in question, the larger the word instructions can be executed simultaneously in each module which is a very important control systems, test and measurement advantage.
  • The TDP (100) processor has special instructions synchronized timing and conditional jumps, which allow a decision to spread all modules (M0, . . . , Mn) system and all running a conditional jump or other action under this decision with complete time synchronization. This is a unique feature of TDP (100). To achieve this full synchronization TDP (100) requires a single clock signal and a single trigger signal or trigger, both common signals to all modules (M0, . . . , Mn). A trigger signal is a multi-point digital connection that connects all (M0, . . . , Mn) modules together to form what is known as a “wired OR” or a “wired AND” according to the standard-drivers logical interface. If the system has with more than one of these trigger signals, such as the PXI Express platform has eight trigger signals, the TDP (100) can optionally make use of the additional trigger to increase the synchronization speed and repetition decisions and synchronized actions.
  • Furthermore the TDP (100) processor can be integrated into the transfer Decisions communication buses (120 b) available modules (M0 . . . Mn). By Interconnection: example, if a control platform, test and measurement PXI or PXI Express, the communication bus (120 b) used by the deterministic processor time (100) is respectively a Peripheral Component Interconnect (PCI) bus, components or PCI Express bus.
  • For example, a representative embodiment is implemented on PXI or PXI Express platform are a reference standard in control applications, test and measurement in most industries.
  • A PXI Express chassis has a printed circuit board backplane, which distributes across all modules the following signals: supply, a PCI Express bus, a clock of 100 MHz, CLK100, 10 MHz clock, CLK10, a signal sync referred to 100 MHz clock and provides a reference pulse to 10 MHz, SYNC100, and 8 trigger signals multi-point PXI trigger Bus, connecting all modules in a “wired aND” with logical drivers like “open collector”, among others.
  • The modules have an FPGA that communicates with a PC and with the specific hardware that makes up each specific type of instrument control, test and measurement.
  • For communication between the PC and FPGA, PCI Express is used. By way of example, a known switch I controller, such as switch I driver devices can be used. Alternatively, the connection can be made directly to the FPGA. The FPGA controls the PCI Express communication and other hardware components.
  • Within the FPGA is implemented the TDP (100) that works with 100 MHz clock, CLK100, to control with precision the time of execution of each instruction and uses the bus 8 PXI triggers and the reference signal SYNC100, to achieve a perfect synchronized execution across all modules.
  • Bias or skew in synchronization between modules depends only on 100 MHz clock skew in different slots in the chassis and is independent of bias trigger signals and reference SYNC100.
  • Clock skew depends only on the chassis used and is guaranteed to be less than 250 ps, although according to the chassis can be much lower and it can be significantly improved if an initial calibration is performed. The user can select which of the 8 shot available on the PXI Express wants to allow to use the TDP (100) and the software manages the resources allocated. For PXI has not CLK100 and SYNC100 the signals, so that the embodiment is implemented using the 10 MHz clock, CLK10, and eight multi-trigger signals point. PXI bus communication is used instead of PCI PCI Express.
  • Another representative embodiment is implemented on an LXI platform, LAN Extension for Instrumentation: Extension of Local Area Network Instrumentation—where the clock signal and trigger bus (120 a) communicate between modules—a wired trigger bus can be provided in the LXI specification and where the communication bus (120 b) consists of a Local Area Network (LAN).
  • Another representative embodiment is implemented on the Advanced Telecomunications Architecture (MicroTCA platform), micro computing architecture advanced-telecommunications or some of its variants, as microTCA.4, where the clock signal is communicated between modules using some of the various ports covered by the standard clock, CLK1, CLK2, CLK3, TCLKC or TCLKD, and trigger signals can communicate through ports 17 to 20. Where the communication bus (120 b) can be selected between Ethernet, PCI Express and SRIO, Rapid Serial Input Output: Inputs Outputs in Series Fast, depending on the implementation of the system.
  • Another representative embodiment is implemented on the platform AdvancedTCA Extensions (AXIe) for instrumented: Extension for AdvancedTCA Instrumentation—where, similar to PXI Express, CLK100 backplane signals and SYNC are used, and one or more of the trigger signals 12 MLVDS available and where the communication bus (120 b) can be selected from a LAN connection or PCI Express.
  • The decision on which global action or conditional jump is executed and timing may depend on one or more modules (M0, . . . , Mn) system.
  • To force synchronization (M0, . . . , Mn) modules, unconditional include a synchronization point, the same mechanism as in synchronized conditional jumps considering the jump condition is always false is used.
  • In addition, the TDP (100) has special synchronized execution instructions as the “Start” node that allows you to start running in all modules (M0, . . . , Mn) simultaneously.
  • The synchronized actions, synchronized diving and synchronization points can involve all (M0, . . . , Mn) system modules or only a subset of them.
  • The TDP (100) also has flow control instructions as while, if, for etc, both local and multi-module synchronized.
  • It also has math, logic operations, and access to data and variables of the module itself or the rest of the modules.
  • And it has all the necessary instructions to control the specific capabilities of the module (Mi), i=0, . . . , n, on which it is implemented.
  • The TDP (100) also has instructions awaiting triggers generation and to interact with modules not incorporating a TDP (100) and with external events.
  • There are two basic types of instructions that can run the TDP (100):
  • The instructions to shoot and do not consume time TDP (100), ie these instructions execution starts and in the next clock cycle TDP (100) can process a new instruction word and execute further instructions.
  • These instructions may require several cycles to run and run in parallel regardless of operation of TDP (100).
  • How time consuming TDP (100), so until it completes execution TDP (100) can not process the next instruction word and execute the following instructions; Typical examples are the control instructions waiting, wait, or flow: while, for, if, etc.
  • Time consuming instructions are implemented in the core (300) of the TDP (100), while those not, can be implemented in both the core (300) and the instructions executers (P0, . . . , Pn). In the case of the instructions that trigger, you may be able to start multiple runs sequentially when the previous run is still ongoing and they are implemented using filters based on pipeline architecture.
  • The TDP (100) also has a deterministic time system threads or threads, which allows to include in each module (Mi) more than one thread that runs in parallel with an interlacing technique instruction by instruction. This technique ensures a deterministic distribution of instruction execution in all threads, ensuring accuracy of time. The main thread running natively synchronized with other modules and semaphores and events that allow you to synchronize the different threads of the same module to each other are included. Furthermore Choose whether you want to include any of the global instructions synchronized in one or more of the secondary threads.
  • FIG. 5 shows schematically the process of programming, implementation and compilation instructions TDP (100) of each (M0, . . . , Mn) module. The user program the entire system or part of it, implementing a code for each of the modules (M0, Mn) involved in the application control, test and measurement.
  • To implement the code it has local and global instructions to all modules (M0, Mn), as described above.
  • For the first phase of the process of entering the code (500), you can use tools file generation orders (501) or scripts or programming platforms based on text (502) or graphics (503) Instructions global run on all modules in a group or in a subset and TDP (100) guarantees its fully synchronized execution.
  • Not all (M0, . . . , Mn) system modules must work together, it is possible to have groups of modules that work together, which are programmed and operated completely independently synchronized between modules outside the group.
  • The group is programmed with the ability to execute instructions in all of them in sync as if they were a single hardware and can also include specific local instructions for each module.
  • The source code written by the user can be graphic or text and provides graphic or script generation tools, as discussed above, that let you easily add multi-module synchronized instructions and specific to each local module.
  • The programming tool performs all checks for consistency of global and individual code and then compiles (510) the source code (511) of the group as a whole to obtain a compiled code (513), from which will generating a code execution (CM0, . . . , CMN) specific to each module (M0 . . . Mn). In the Compilation (510) instructions for high-level user instructions can run the TDP (100), whose compiler (512) manages resources trigger and communication available to achieve automatically and transparently to the user synchronization become and sharing of decisions between (M0, . . . , Mn) modules.
  • The compiler (512) verifies the correct syntax for all instructions and that resources needed at all times for execution. In summary, the entered code (500) by the user compiled to generate the specific executable code (CM0, . . . , CMN) for each module (M0 . . . Mn) and, during compilation, the compiler (512) TDP (100) generates the need for synchronization of each of the global synchronization instructions analyzing each section code. The programming tool and compilation usually runs on a computer, but could run on any other platform, and also the programming and compilation tool could run on different platforms. The executable code (CM0 . . . CMN) generated for each module are downloaded to all group modules and then the code is executed by the TDP (100) synchronously in the hardware of each system module (530). Downloading executable code (CM0, . . . , CMN) each (M0 module . . . Mn) and control running and debugging (520), using graphical tools (521), command (522) and I or library (523), can be made by the same communication bus (120 b) connecting all modules (M0, . . . , Mn) between themselves and with the PC or system controller if available, or through a port specific programming available in each module.
  • For programming the hardware system (530) it is counted with a graphic software, as shown in FIG. 6A which allows easily programmed each module by one or more flowcharts, as shown in detail by way of example in FIG. 6B-6D.
  • The software allows you to select which group of modules you want to work in sync and create a project. Once the project is created has a flow diagram window per module, a window of further flow diagram for each thread and additional editing windows and configuration instructions, debugging, etc. For example, in FIG. 6A a properties window (640), where some general parameters for scheduling the execution of the selected element at all times and special instructions of the element are configured, along with three windows diagram shown flow: A flow diagram window (600) to a first module, shown in detail as an example in FIG. 6B; another window (601) for a second module, shown in detail as an example in FIG. 6C; and a third (602) to a third module, as shown in detail in FIG. 6D example. The software allows you to program all modules simultaneously and automatically manages the global synchronized items.
  • In addition, the software allows you to save the project and then loaded with the same graphic software, user libraries or other code editing environment.
  • User libraries let you load projects already created, modify, compile, load them into the hardware and control its execution completely.
  • Thus, the hardware implementation code can be integrated into any user application.
  • Since libraries user can, start, pause, stop the execution, as well as exchange data and events between the PC and modules.
  • You can have a collection or library of hardware programs that use the same or different modules and run them at different times of the execution of software.
  • In addition, the software allows to download the program for each module group, run and debug the program, inspecting variables, state of TDP (100) and insert breakpoints or breakpoints, local and global.
  • Local break points only stop the execution of a module, while global stop to all modules in the group.
  • Global break points are very important in synchronized multi-module tool systems.
  • These are introduced into one of the modules and replicate the end of the section synchronized in other modules of the group.
  • The user can move freely break global points within each section to adjust the exact stopping point of each module.
  • The flowchart of each module is composed of instruction boxes and arrows of time as shown in FIGS. 6A-6D. The arrows interconnecting a source element with a destination element and the flowchart correspond to a given instant of execution of the target element relative to the source element. Beat arrows indicate the exact time specified in nanoseconds (ns) in the 6B-6D, in which the execution of the next instruction will start from the previous. Instruction boxes may contain actions, calculations, flow control instructions, data transfer, etc. The instructions can be local to the module or multi-module global synchronized. The synchronized elements (610, 611, 612, 613) are inserted into one of the modules and are automatically replicated in the other modules in the group. The software generates the need to maintain synchronization and propagate decisions transparent to the user to ensure the implementation of all the boxes synchronized at the same instant of time code.
  • Boxes or local elements (620, 621, 622, 623, 624, 625, 626, 627, 628) of each module can maintain synchronism or not.
  • There are cases in which local elements (620, 621, 622, 623, 624, 625, 626, 627, 628) of all modules (M0, . . . , Mn) corresponding to words of instruction (303) local, when running not maintain synchronism between the modules because the instruction word (303) Local consumes not known by the compiler (512) prior to execution time. In this case synchronization between all modules is recovered in the following global element synchronized to the local instruction word (303) causing desynchronization.
  • Boxes or local control structures that maintain synchronism are those that trigger actions and not time-consuming or time consuming but it is known at compile time before execution. Boxes or local control structures of sync are those whose runtime can not be known at compile time, for example a While command (621) with a variable, or Wait command of an external event. The software ensures synchronized execution of the boxes corresponding to synchronized elements (610, 611, 612, 613), that allows each section between synchronized global elements can be analyzed separately. If all local boxes on a stretch maintain synchronism, the software can determine with precision the execution time of each local instruction with respect to the synchronized starting node of the section and thus automatically adjust the time of the last arrow before the box synchronization end of the stage and achieve so all modules execute the synchronized element 5 final stretch at the same time. If any of the local branches of synch, the software may not accurately determine the time of the boxes from the point of sync, but the synchronism between all modules in the synchronized box end of the section in question will recover: this is done with an additional procedure and is indicated by the dotted line at the end of the section (630). For example, in FIG. 6A, in the properties window (640), the 10 property “Time” of the selected local box (624) indicates that the box will run as minimum 140 ns after the synchronization point immediately above, but may take longer to run indefinitely depending on how many local instruction cycles While (621) running before the selected box (624) is repeated.
  • The software manages multi-module synchronization transparently to the user while programming is done thus synchronized boxes are displayed aligned with all modules and times are adjusted in real time. This makes the multi-module programming is very simple, as if a single device be scheduled.
  • In view of this description and figures, those skilled in the art will understand that the invention has been described according to some preferred embodiments thereof, but multiple variations can be introduced in said preferred embodiments or applied to different standard or custom platforms without leaving the scope of the invention as has been claimed.

Claims (20)

We claim:
1. A system in timed deterministic execution time for distributed control applications, test and measurement, comprising a set of at least one module (M0, . . . , Mn) to execute control applications, test and measurement, wherein all the (M0, . . . , Mn) the set modules share at least one trigger signal and a clock signal, and comprise a deterministic time processor, and the time deterministic processor uses the signal clock and one or more of the trigger signals shared by all modules (M0, . . . , Mn) to run a program distributed modules (M0, . . . , Mn) controlling every moment of execution of each instruction program and, if the assembly comprises more than one (M0, . . . , Mn) module to synchronize the execution of all or part of the set of modules (M0, . . . , Mn).
2. The runtime system distributed according to claim 1, wherein the deterministic time processor communicates with a common signal bus to all modules (M0, . . . , Mn), comprising a control bus carrying the clock signal and at least one trigger signal, shared by all (M0, . . . , Mn) modules.
3. The system distributed execution according to claim 2, wherein the deterministic processor time communicates with a communication bus incorporated in the signal bus and through the modules (M0, . . . , Mn) communicate with each other.
4. The runtime system distributed according to claim 3, wherein the (M0, . . . , Mn) modules communicate with an external processor via the communication bus.
5. The distributed execution system, according to claim 4, wherein the deterministic time processor have a common core to all modules (M0, . . . , Mn) and the core deterministic processor time reads instructions of a memory, runs on a given instant of execution instructions, which are selected from global instructions synchronized to all or part of the modules (M0, . . . , Mn) and local to each module, and passes instructions to at least one instruction executer (P0, . . . , Pn) to perform additional functions, which are selected from common functions all (M0, . . . , Mn) modules and functions as an application specific control, test and measurement of each module (M0, . . . , Mn).
6. The system of distributed execution, according to claim 5, wherein the deterministic processor time executes an instruction word comprising at least one field (DW [1], DW [2]) indicating an exact time of execution of each instruction word.
7. The system of distributed execution, according to claim 6, wherein the deterministic processor time executes an instruction word comprising a control field (DW [0]) that enables execution an instruction or multiple instructions simultaneously.
8. The system of distributed execution, according to claim 7, wherein the deterministic processor time executes synchronized global instructions, synchronization and synchronized conditional jumps, spreading a decision to all or part of the modules (M0 . . . , Mn) which, according to the decision, perform an action or a conditional jump with time synchronization.
9. The system of distributed execution, according to claim 8, wherein the decision propagated by the deterministic processor time between all modules (M0, Mn) of the assembly and on which the conditional jump or action is executed synchronized all depends on one or part of a set of modules (M0, . . . , Mn).
10. The system of distributed execution, according to claim 9, wherein the deterministic processor time executes instructions to generate and waiting at least a trigger signal to interact with external events and other system modules which do not incorporate a deterministic time processor.
11. The distributed execution system, according to claim 10, wherein the deterministic time processor uses threads to include in each module (M0, . . . Mn) of the set more than one thread that runs in parallel with an interlacing technique instruction by instruction.
12. The system of distributed execution, according to claim 11, wherein the deterministic processor time comprises a compiler that converts a source code with high-level instructions, introduced by a user for all (M0, . . . , Mn) the set modules as a single programmable device, in a compiled code from an executable code (CM0 is obtained, . . . CMN) specific for each (M0, module . . . Mn) with words of instruction containing synchronized local and global instructions executable by the deterministic processor time, where the compiled code takes into account the exact time of execution of each instruction word for synchronization of all instruction words global for all specific (M0, . . . , Mn) of the set in the execution of the executable code (CM0, . . . , CMN) modules each module (M0, . . . , Mn).
13. The distributed execution system, according to claim 12, characterized by comprising a graphical user interface through which the user enters instructions for programming high level each module (M0, . . . , Mn) of set by at least a flow chart comprising at least one synchronous element entered by the user in one of the assembly modules and the at least one synchronized element is automatically replicated in other modules set to be executed as an instruction word overall in a moment of time for time deterministic processor of each module.
14. The system of distributed execution, according to claim 13, wherein the graphical user interface further comprises arrows interconnecting an origin element with a destination in the flow chart element and corresponding to a given instant of execution element destination regarding the source element.
15. The distributed execution system, according to claim 13, wherein the graphical user interface further comprises local elements to each module (M0, . . . Mn) of the set corresponding to words of instruction (303 local), the execution maintains synchronism with the instruction words Global only if the local instruction words do not consume time or if they consume a time known by the compiler prior to execution.
16. The distributed execution system, according to claim 13, wherein the user interface comprises global rupture points all or part of the modules (MO . . . Mn), which correspond to instruction words special time deterministic processor and stop execution time deterministic processor at a particular point within the segment synchronized in all or part of the set of modules (M0, . . . , Mn).
17. The distributed execution system, according to claim 16, wherein is implemented on a platform control and test As is selected from PXI and PXI Express.
18. The distributed execution system, according to claim 17, wherein is implemented on a platform LXI.
19. The distributed execution system according to claim 18, wherein is implemented on a platform control, test and measurement selected from MicroTCA microTCA.4, AXIe or an evolution of AdvancedTCA.
20. The distributed execution system according to claim 19, wherein the deterministic time processor is implemented in a device processing device selected from microprocessor, FPGA or ASIC.
US15/198,147 2015-08-03 2016-06-30 System of implementing deterministic real-time, distributed and synchronized for control applications, test and measurement Abandoned US20170039125A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/286,691 US11106565B2 (en) 2015-08-03 2019-02-27 System for time-deterministic, distributed and synchronized execution for control test and measurement applications

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES201531155 2015-08-03
ES201531155A ES2552739B1 (en) 2015-08-03 2015-08-03 Deterministic Execution System in Time, Distributed and Synchronized for Control, Test and Measurement Applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/286,691 Continuation-In-Part US11106565B2 (en) 2015-08-03 2019-02-27 System for time-deterministic, distributed and synchronized execution for control test and measurement applications

Publications (1)

Publication Number Publication Date
US20170039125A1 true US20170039125A1 (en) 2017-02-09

Family

ID=54652006

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/198,147 Abandoned US20170039125A1 (en) 2015-08-03 2016-06-30 System of implementing deterministic real-time, distributed and synchronized for control applications, test and measurement
US16/286,691 Active 2036-10-07 US11106565B2 (en) 2015-08-03 2019-02-27 System for time-deterministic, distributed and synchronized execution for control test and measurement applications

Family Applications After (1)

Application Number Title Priority Date Filing Date
US16/286,691 Active 2036-10-07 US11106565B2 (en) 2015-08-03 2019-02-27 System for time-deterministic, distributed and synchronized execution for control test and measurement applications

Country Status (2)

Country Link
US (2) US20170039125A1 (en)
ES (1) ES2552739B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268390A (en) * 2016-12-30 2018-07-10 爱思开海力士有限公司 Storage system and its operating method
US20190372344A1 (en) * 2018-06-01 2019-12-05 Keysight Technologies, Inc. Instrumentation chassis with single output ac to dc power supply and dc to dc switching regulators
US11106565B2 (en) * 2015-08-03 2021-08-31 Keysight Technologies, Inc. System for time-deterministic, distributed and synchronized execution for control test and measurement applications
CN115378538A (en) * 2022-08-24 2022-11-22 中北大学 Multi-trigger management system applied to full ballistic test of light weapons target
CN116300557A (en) * 2022-12-05 2023-06-23 上海励驰半导体有限公司 Multisystem interaction control method and device, electronic equipment and storage medium
US12248357B1 (en) * 2020-09-21 2025-03-11 Groq, Inc. Power management in deterministic tensor streaming processors

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12073254B2 (en) * 2020-02-20 2024-08-27 Analog Devices International Unlimited Company Real time sense and control using embedded instruction timing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524244A (en) * 1988-07-11 1996-06-04 Logic Devices, Inc. System for dividing processing tasks into signal processor and decision-making microprocessor interfacing therewith
US6751566B2 (en) * 2000-05-29 2004-06-15 Advantest Corporation Sampling digitizer, method for sampling digitizing, and semiconductor integrated circuit test device with sampling digitizer
US8601486B2 (en) * 2011-05-31 2013-12-03 International Business Machines Corporation Deterministic parallelization through atomic task computation
US9348587B2 (en) * 2010-07-09 2016-05-24 Hyperion Core, Inc. Providing code sections for matrix of arithmetic logic units in a processor
US9785587B2 (en) * 2012-07-09 2017-10-10 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0475282B1 (en) * 1990-09-14 1998-12-16 Hitachi, Ltd. Synchronous method and apparatus for processors
US6151689A (en) * 1992-12-17 2000-11-21 Tandem Computers Incorporated Detecting and isolating errors occurring in data communication in a multiple processor system
US5634004A (en) * 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
US6111888A (en) * 1997-05-27 2000-08-29 Micro Motion, Inc. Deterministic serial bus communication system
US6654818B1 (en) * 2000-06-22 2003-11-25 International Business Machines Corporation DMA access authorization for 64-bit I/O adapters on PCI bus
US8406715B2 (en) * 2008-03-27 2013-03-26 Panasonic Automotive Systems of America, division of Panasonic Corporation of North America Method and apparatus for dynamically adapting FM tuner sensitivity to a local environment for a single-tuner system
US9158565B2 (en) * 2011-02-22 2015-10-13 Fts Computertechnik Gmbh Predictable computing in virtualizated distributed computer systems based on partitioning of computation and communication resources
US9443269B2 (en) * 2012-02-16 2016-09-13 Novasparks, Inc. FPGA matrix architecture
US9137038B1 (en) * 2012-08-30 2015-09-15 Rockwell Collins, Inc. Integrated modular avionics system with distributed processing
ES2552739B1 (en) * 2015-08-03 2016-07-04 Keysight Technologies Singapore (Holdings) Pte. Ltd. Deterministic Execution System in Time, Distributed and Synchronized for Control, Test and Measurement Applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524244A (en) * 1988-07-11 1996-06-04 Logic Devices, Inc. System for dividing processing tasks into signal processor and decision-making microprocessor interfacing therewith
US6751566B2 (en) * 2000-05-29 2004-06-15 Advantest Corporation Sampling digitizer, method for sampling digitizing, and semiconductor integrated circuit test device with sampling digitizer
US9348587B2 (en) * 2010-07-09 2016-05-24 Hyperion Core, Inc. Providing code sections for matrix of arithmetic logic units in a processor
US8601486B2 (en) * 2011-05-31 2013-12-03 International Business Machines Corporation Deterministic parallelization through atomic task computation
US9785587B2 (en) * 2012-07-09 2017-10-10 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method for executing, within a multitasking onboard system, an application timed according to a plurality of different time domains including interruption management

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106565B2 (en) * 2015-08-03 2021-08-31 Keysight Technologies, Inc. System for time-deterministic, distributed and synchronized execution for control test and measurement applications
CN108268390A (en) * 2016-12-30 2018-07-10 爱思开海力士有限公司 Storage system and its operating method
US20190372344A1 (en) * 2018-06-01 2019-12-05 Keysight Technologies, Inc. Instrumentation chassis with single output ac to dc power supply and dc to dc switching regulators
US10840701B2 (en) * 2018-06-01 2020-11-17 Keysight Technologies, Inc. Instrumentation chassis with single output AC to DC power supply and DC to DC switching regulators
US12248357B1 (en) * 2020-09-21 2025-03-11 Groq, Inc. Power management in deterministic tensor streaming processors
CN115378538A (en) * 2022-08-24 2022-11-22 中北大学 Multi-trigger management system applied to full ballistic test of light weapons target
CN116300557A (en) * 2022-12-05 2023-06-23 上海励驰半导体有限公司 Multisystem interaction control method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
ES2552739B1 (en) 2016-07-04
ES2552739A1 (en) 2015-12-01
US11106565B2 (en) 2021-08-31
US20190266027A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
US20170039125A1 (en) System of implementing deterministic real-time, distributed and synchronized for control applications, test and measurement
Lohstroh et al. Toward a lingua franca for deterministic concurrent systems
US9003166B2 (en) Generating hardware accelerators and processor offloads
Berry SCADE: Synchronous design and validation of embedded control software
Sun et al. Definitions of predictability for cyber physical systems
WO2017129242A1 (en) Deterministic concurrent test program executor for an automated test equipment
WO2008050094A1 (en) Diagnostic apparatus and method
Hu et al. Exploring AADL verification tool through model transformation
Ju et al. Performance debugging of Esterel specifications
Yip et al. Programming and timing analysis of parallel programs on multicores
US20030037317A1 (en) Method and apparatus for debugging in a massively parallel processing environment
Duller et al. picoArray technology: the tool's story
Yip et al. The ForeC synchronous deterministic parallel programming language for multicores
EP3762824B1 (en) Time-deterministic microprocessor and microcontroller
Brinkmann et al. Task debugging with temanejo
Vyatkin et al. Modeling of IEC 61499 function blocks–a clue to their verification
JP6528433B2 (en) Design support apparatus and design support method
CN117290058B (en) Method for executing breakpoint debugging data injection and data monitoring during model simulation
Roth et al. Adaptive algorithm and tool flow for accelerating systemc on many-core architectures
Kirner A uniform model for tolerance-based real-time computing
Cederman et al. Rtems smp for leon3/leon4 multi-processor devices
Lindgren et al. Real-time execution of function blocks for internet of things using the rtfm-kernel
Morelli et al. Control and scheduling co-design for a simulated quadcopter robot: A model-driven approach
Socci et al. A timed-automata based middleware for time-critical multicore applications
Yuan Architectures Specific Compilation for Efficient Execution of Esterel

Legal Events

Date Code Title Description
AS Assignment

Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LT

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OLIVERIO, NESTOR HUGO;PARRA, MARC ALMENDROS;REEL/FRAME:039121/0224

Effective date: 20160630

AS Assignment

Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.,

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.;REEL/FRAME:048225/0065

Effective date: 20181001

Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD., SINGAPORE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.;REEL/FRAME:048225/0065

Effective date: 20181001

STCV Information on status: appeal procedure

Free format text: NOTICE OF APPEAL FILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION