CN114625359A - Multi-machine no-coupling digital development platform connected through synchronous concurrent network - Google Patents
Multi-machine no-coupling digital development platform connected through synchronous concurrent network Download PDFInfo
- Publication number
- CN114625359A CN114625359A CN202210527632.8A CN202210527632A CN114625359A CN 114625359 A CN114625359 A CN 114625359A CN 202210527632 A CN202210527632 A CN 202210527632A CN 114625359 A CN114625359 A CN 114625359A
- Authority
- CN
- China
- Prior art keywords
- data
- task function
- function module
- clock
- task
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
The invention discloses a multi-machine no-coupling digital development platform connected through a synchronous concurrent network, which is connected in a single clock synchronous concurrent network in a tree-shaped topological structure, wherein a plurality of machines are used as one node in a distributed development network, and hardware clocks of all nodes are globally unified and are used for developing each task function module of digital equipment; the platform determines whether the platform has the function of issuing the basic scheduling clock or not by defining a data structure body by the platform, providing a unique memory for the task function module and giving the task function module a special memory locking mode, so that the basic scheduling clock is issued to all the task function modules, each task function module executes the data process of the platform and synchronizes to other task function modules. The invention can shorten the research and development period of the digital system/equipment, reduce the research and development cost of the digital system/equipment, reduce the test workload, reduce the test cost and greatly improve the research and development efficiency.
Description
Technical Field
The invention belongs to the field of research and development of digital equipment, and particularly relates to a multi-machine no-coupling digital development platform connected through a synchronous concurrent network.
Background
In the traditional communication process, when a kernel system is aimed at, and information interaction is needed among a plurality of models, data transmission is generally carried out in various bus forms by adopting hard wires, the communication process of the kernel system depends heavily on the technical advancement of a bottom layer bus, and the information interaction becomes more and more complex as the system becomes more and more complex. Communication between the kernel systems is similar to addressing, i.e. the process of establishing link connections, and a communication protocol needs to be agreed upon when establishing links. The communication protocol convention process involves packing and unpacking, i.e. where to send what data is placed, which is a relatively computation resource-wasting process, and the packing and unpacking involves content coupling, time coupling, address coupling, causal coupling and system coupling.
Content coupling, i.e., coupling in data meaning, length, and placement; time-coupled refers to sending data at a specific appropriate time; the address coupling refers to the address coupling of each process connected with a link on a kernel system; causal coupling is the coupling in the order in which tasks execute one after the other; system coupling refers to coupling between subsystems and data transmission logical relations between subsystems.
These couplings will affect the capacity expansion/reduction of the system, function increase, change or redeployment and reconfiguration, and in order to solve these problems, in the prior art, a monitoring program is often set to monitor whether each module in the system is operating normally, monitor whether each module is on-line in real time, and simultaneously, there is a testing process to test the state of each module. Due to the existence of various coupling relations, the capacity expansion/reduction of the system, the function increase, change or redeployment, reconstruction and the like all bring retest verification, and the test has no inheritance. The equipment consists of a plurality of systems, each system is provided with a plurality of modules, the time between the modules is not synchronous, namely different execution cycles can exist in the modules. In these processes, it is not known which modules are coupled together, which results in the specific state, specific data and specific time of acquiring a specific module, and adding a monitor program requires redesigning the entire system, which is called a tight coupling design.
In practical situations, for example, a certain equipment system, each design manufacturer designs its own subsystem using a tightly coupled design system, and the main integration unit completes the whole integration process, and once any one of the design systems is modified, all design manufacturers of the whole design protocol, document and software need to be modified in a coordinated manner. And large systems often have tens of thousands of documents, and design manufacturers negotiate with each other to have more human factors, so that the whole coordination process is prolonged, and one design manufacturer possibly needs to change a subsystem with own technical problems, so that the whole link is difficult. The skilled person therefore proposes a data distribution system.
In the data distribution system, each designer designs a configuration file, and the configuration file mainly comprises a writing theme and a reading theme. The main integration unit forms the configuration files of all design manufacturers into a middle database and is responsible for the central server, if the branch manufacturers need specific data, the data distribution system inquires the configuration files, and then the recombined data is sent to the specific branch manufacturers. Once the change occurs, only the configuration file needs to be changed, so as to solve the tight coupling problem.
Then, in the data distribution system, the system clocks designed by various design manufacturers are not uniform, each module is changed, and the read-write process needs to be changed. And one design manufacturer needs to send the configuration file to the central database for modification, and the configuration files of other design manufacturers also need to be modified, so that the process cannot be broken away, and a central server needs to be added. Once the configuration file is changed, the testing process needs to be retested, and each module in the data distribution system can not complete the writing process when reading data among multiple processes, if a problem occurs. Therefore, the module locking process is designed, that is, the data reading process can not be written any more, but module reading may occur simultaneously, and some modules need to wait, so that it takes too long for a plurality of modules to complete the reading process.
And each manufacturer wants to decouple during designing, but also needs to be matched and debugged to complete the whole product design. Therefore, a multi-machine uncoupled digital development platform is urgently needed.
Disclosure of Invention
In order to solve the above problems in the prior art, the present invention provides a multi-machine uncoupled digital development platform connected through a synchronous concurrent network. The technical problem to be solved by the invention is realized by the following technical scheme:
the invention provides a multi-machine no-coupling digital development platform connected through a synchronous concurrent network, which runs on a plurality of machines, the no-coupling digital development platform of the plurality of machines is connected in a single clock synchronous concurrent network in a tree-shaped topological structure, the plurality of machines are used as a node in a distributed development network, all the nodes are globally unified by hardware clocks in the single clock synchronous concurrent network, and the no-coupling digital development platform of the plurality of machines is used for developing each task function module of a digital device;
the non-coupling digital development platforms of the machines provide corresponding model containers for each task function module, and the model containers are used for transferring data read in or written out by each task function module to corresponding address memories of the global dynamic space;
the method comprises the following steps that a non-coupling digital development platform of a plurality of machines jointly sets a data structure body for defining data of all task function modules and interfaces for reading in the data of all task function modules according to the definition of the data structure body;
the non-coupling digital platform of the machines also provides a unified service unit for each task function module;
each unified service unit is used for determining whether to issue a basic scheduling clock by itself in a mode of trying to lock a special memory in a global dynamic space when a task function module to which the unified service unit belongs is on line;
each task functional module responds to the basic scheduling clock and executes reading, operation and storage of data so as to acquire data of other task functional modules and synchronize the data of the task functional module to the other task functional modules.
Optionally, the non-coupled digital platforms of multiple machines are further configured to queue data of all task function modules according to a preset rule, and synchronously broadcast the queued data to all task function modules;
and transmitting the global data of the self global dynamic space to other nodes in the single clock synchronization concurrent network.
Optionally, each unified service unit, configured to determine whether to issue the basic scheduling clock by trying to lock a dedicated memory in the global dynamic space when the task function module to which the unified service unit belongs is online includes:
each unified service unit is used for trying to lock the special memory in the global dynamic space when the task function module to which the unified service unit belongs is on line, if the special memory is locked, the locking fails, and if the locking succeeds, the unified service unit can be determined to issue the basic scheduling clock.
Optionally, each task functional module, in response to the basic scheduling clock, performs reading, operation, and storage of data, including:
each task function module judges whether the scheduling clock of the task function module is the same as the basic scheduling clock when receiving the basic scheduling clock so as to determine whether the task function module can perform scheduling, and if so, the task function module sequentially executes reading, operation and storage of data; if not, after the self scheduling clock is waited to arrive, reading, calculating and storing the data in sequence;
wherein, the scheduling clock of the task function module is an integral multiple of the basic scheduling clock.
Optionally, the scheduling clock of each functional module is in one-to-one correspondence with the transmission rate,
the unified service unit issues a basic scheduling clock to all task function modules by issuing a scheduling frame in a broadcasting mode;
the scheduling frame includes a field for configuring a clock period of the basic scheduling clock, a field for counting the number of times of issuing the basic scheduling clock, and an issuing timestamp.
Optionally, each task functional module, in response to the basic scheduling clock, performs reading, operation, and storage of data, including:
reading data related to the input of the self-scheduling clock from a computer memory in response to the basic scheduling clock or the self-scheduling clock;
executing data operation based on the read data according to the data processing strategy selected in the task function module, and storing an operation result into a memory space corresponding to the global dynamic space of the task function module;
the data processing strategy selected in any task function module comprises the following steps:
caching the read data into a first queue with unlimited length, and executing data operation based on the data stored in the first queue; or,
covering the read data in the last clock cycle with the read data, and performing data operation based on the latest read data; or,
caching the read data into a second queue with a preset length, and popping up the earliest stored data in the second queue if the second queue is full; data operations are performed based on the data stored in the second queue.
Optionally, the data processing policy selected in any task function module further includes:
if the read data is not enough to execute the data operation of this time, the data operation of this time is executed by combining the data read this time and the data read in the last clock cycle; or,
and if the read data is not enough to execute the data operation of this time, clearing the data read this time, and skipping the data operation and storage steps of this time.
Optionally, when the task function module is located on the same computer, the interaction between the data frame and the scheduling frame is realized through process communication, and when the task function module is located on different computers, the interaction between the data frame and the scheduling frame is realized through a synchronous concurrent network;
the frame format of the scheduling frame is the same as that of the data frame, and the data frame or the scheduling frame is represented by different values of fixed bytes.
Optionally, the task function module sends a heartbeat packet to the corresponding model container when being online, so that the no-coupling digital development platform where the task function module is located generates and outputs information whether each task function module is online according to the heartbeat packet;
when a task function module which issues a basic scheduling clock is not continuously detected to send heartbeat packets, determining that the task function module is disconnected, and resetting all online task function modules on the platform per se;
wherein, the data load of the heartbeat packet comprises: the ID of the task function module and the platform ID of the uncoupled development platform.
Optionally, a generalized communication library is arranged in a non-coupling digital development platform of a plurality of machines, so that a user can select the generalized communication library when developing a task function module;
the generalized communication library comprises a plurality of communication conversion protocols, and the communication conversion protocols are protocols for realizing format conversion of internal and external data of the platform; the internal data is data defined in the data structure, and the external data is data undefined in the data structure.
The invention discloses a multi-machine no-coupling digital development platform connected through a synchronous concurrent network, which is connected in a single clock synchronous concurrent network in a tree-shaped topological structure, wherein a plurality of machines are used as one node in a distributed development network, and hardware clocks of all nodes are globally unified and are used for developing each task function module of digital equipment; the platform determines whether the platform has the function of issuing the basic scheduling clock or not by defining a data structure body by the platform, providing a unique memory for the task function module and giving the task function module a special memory locking mode, so that the basic scheduling clock is issued to all the task function modules, each task function module executes the data process of the platform and synchronizes to other task function modules. The invention can shorten the research and development period of the digital system/equipment, reduce the research and development cost of the digital system/equipment, reduce the test workload, reduce the test cost and greatly improve the research and development efficiency.
In addition, the platform of each machine provides a unique memory for the task function module, and the task function module is given a function of determining whether the task function module has a function of issuing the basic scheduling clock or not in a mode of locking the special memory, so that the basic scheduling clock is issued to all the task function modules, each task function module executes a data process of the task function module and synchronizes to other task function modules. The online task function modules can respond to the basic scheduling clock, and then when the self scheduling clock is reached, the reading, the operation and the storage of data are sequentially executed, so that the synchronism among the task function modules on the clock is ensured.
In summary, the decoupling-free digital development platform provided by the embodiment of the invention is used for developing digital equipment, so that decoupling of task function modules in interfaces, protocols and logics can be realized, the development cycle of the digital system/equipment can be shortened, the development cost of the digital system/equipment is reduced, the test workload is reduced, the test cost is reduced, and the development efficiency can be greatly improved.
The present invention will be described in further detail with reference to the accompanying drawings and examples.
Drawings
Fig. 1 is a schematic structural diagram of a multi-machine uncoupled digital development platform connected through a synchronous concurrent network according to an embodiment of the present invention;
FIG. 2 is a diagram illustrating an embodiment of the present invention in which the self-scheduling clock is derived from the base scheduling clock;
FIG. 3 is a schematic structural diagram of a non-coupled digital development platform according to an embodiment of the present invention;
FIG. 4 is a frame structure diagram of a scheduling frame in an embodiment of the present invention;
FIG. 5 is a diagram illustrating multiple tasks running in parallel within one clock cycle according to an embodiment of the present invention;
fig. 6 is a schematic diagram of running multiple tasks with logical precedence in parallel in one clock cycle in the embodiment of the present invention.
Detailed Description
The present invention will be described in further detail with reference to specific examples, but the embodiments of the present invention are not limited thereto.
In order to reduce the development cost and the test cost of the digital system/equipment and improve the development efficiency, the embodiment of the invention provides a multi-machine no-coupling digital development platform connected through a synchronous concurrent network,
the system comprises a plurality of machines, a single clock synchronization concurrent network, a non-coupling digital development platform of the machines, a plurality of nodes, a task function module and a plurality of software modules, wherein the non-coupling digital development platform of the machines is connected in the single clock synchronization concurrent network with a tree-shaped topological structure, the machines are used as one node in the distributed development network, all the nodes are globally unified by hardware clocks in the single clock synchronization concurrent network, the non-coupling digital development platform of the machines is used for developing each task function module of the digital equipment, the task function modules work cooperatively to realize corresponding functions of the digital equipment, and the task function modules are arranged on the machines or one machine.
As shown in the lowest subgraph of fig. 1, the single clock synchronization concurrent network is in a tree network topology, each node is connected with other nodes according to the hierarchy in the tree network, and the nodes in the same hierarchy are not connected;
in the single clock synchronization concurrent network, each node is aligned through a single clock, so that the generation time nodes of the same data are kept the same in the distribution network;
each node synchronously receives global unified data of a direct-connected node of the next level and forwards the global unified data from the node of the previous level in parallel, and issues the global unified data to each task function module so that the task function module screens a unified data object required by the task function module from the global unified data;
and the generation time nodes of each unified object in the global unified data forwarded by each node are consistent in the single clock synchronization concurrent network.
It is worth mentioning that: the uncoupled digital development platform can carry out clock alignment circulation on data of various manufacturers and data of task function modules of the manufacturers, and each manufacturer has a clock period, so that each task function module on the uncoupled digital development platform can select whether to read data of other task function modules according to the clock period, and thus global data management is realized.
Referring to fig. 1, the platform includes an entry (Struct definition & import) for defining and importing a data structure (Struct), where the data defined in the data structure includes data output by each task function module; the platform provides a corresponding model container for each task function module, and data output by each task function module is stored into a corresponding address memory of the global dynamic space by the corresponding model container.
It is known to those skilled in the art that a so-called container is a standardized package of software and its operating environment. The model container in the embodiment of the present invention is referred to as such a container.
It can be understood that each task function module uniquely corresponds to a section of memory space of the computer, so that data interaction between the task function modules can be realized in a mode of directly accessing the memory, and a database does not need to be additionally arranged. Compared with the mode that configuration files are respectively defined in each task function module in the existing data distribution system and then are sent to a database for analysis, the method and the system for distributing the data in the data distribution system do not need to analyze the names and types of all data and the information of the system dependency relationship and the like according to the configuration files, so that decoupling of interfaces and protocols among the task function modules is achieved, and the cooperation efficiency among the task function modules is greatly improved due to the fact that the speed of directly accessing the memory is higher.
In practical applications, there are various specific implementation manners for the task function module to correspond to the unique memory space in the global dynamic space. For example, in an implementation manner, the memory space corresponding to each task function module may be mapped according to the platform identifier and the ID of the task function module. It can be understood that the platform identifier and the ID of the task function module are unique, and therefore, the memory space mapped for the task function module according to the platform identifier and the task function module ID also corresponds to the task function module uniquely.
In another implementation manner, if the names of different task function modules are different, the memory space may also be mapped for the task function module according to the names of the task function modules.
In another implementation manner, the task function module may also be uniquely specified according to the ID or name of the task function module and the creation time of the task function module in the platform, so that the memory space may also be mapped for the task function module according to the ID/name of the task function module and the creation time of the task function module in the platform.
With continued reference to FIG. 1, the platform also provides a unified service unit (clk) for each task function module; the unified service unit is used for determining whether to issue a basic scheduling clock by the unified service unit in a mode of trying to lock a special memory in a global dynamic space when a task function module of the unified service unit is on line; each task functional module responds to the basic scheduling clock, and executes reading, operation and storage of data so as to acquire data of other task functional modules and transmit the data to other task functional modules.
It is worth mentioning that: the data read by each task functional module is derived from the global dynamic space, so that each functional module can read the data of all task functional modules in the previous clock period in the current clock period, and the circular sharing circulation is realized in such a way. Therefore, when the clock period of one task functional module comes, the required data can be selected in the global dynamic space.
Because the unified service unit sends the data sent by each task function module to each task function module synchronously, any task function module can receive the data of all task function modules in each clock cycle, namely, each clock cycle can obtain the global data, and only the required data needs to be selected and stored.
Because the data contents received by all the task function modules are completely the same and are completely consistent (synchronous) in time, each task function module only needs to be designed facing the global data table after the global data is planned in the overall design, and does not need to be coordinated with other function modules, thereby realizing decoupling.
Whether the task function module is on line or not can be sensed by the platform through the model container corresponding to the task function module. Specifically, when the task function module is online, the heartbeat packet can be sent to the corresponding model container, so that the platform determines whether the task function module is online according to the heartbeat packets; then, the platform can also output the information whether the task function module is on-line to a user of the platform for viewing.
It can be understood that the uncoupled digital development platform is a software development platform, so that a debugging command can be provided inside the platform, when a user writes program codes of task function modules in the platform, the debugging command can be called to simulate the operation of digital equipment, at this time, the task function modules can continuously send heartbeat packets to the platform, all the task function modules compete for the special memory, which task function module locks the special memory successfully in advance, the unified service unit of the task function module is activated, and the corresponding unified service units of the other task function modules fail.
The heartbeat packet sent to the corresponding model container by the unified service unit, which is the task function module responsible for issuing the basic scheduling clock, may be referred to as a core heartbeat packet.
In an optional implementation mode, when a task function module is online, a heartbeat packet is sent to a corresponding model container, so that a no-coupling digital development platform where the task function module is located generates and outputs information whether each task function module is online or not according to the heartbeat packet;
when a task function module which issues a basic scheduling clock is not continuously detected to send heartbeat packets, determining that the task function module is disconnected, and resetting all online task function modules on the platform per se; at this time, all task function modules will compete again for the private memory. Therefore, the basic dispatching clock can be always in place, and the functional breakdown of the digital equipment can not be caused.
Wherein, the data load of the heartbeat packet comprises: the ID of the task function module and the platform ID of the uncoupled development platform. Of course, it is reasonable to use, for example, null packets as the heartbeat packets.
In addition, the non-coupling digital platform of the plurality of machines is also used for queuing data of all task function modules according to a preset rule and synchronously broadcasting the queued data to all task function modules; and transmitting the global data of the self global dynamic space to other nodes in the single clock synchronization concurrent network.
In addition, preferably, in order to ensure the validity of the clock at any time, the activated unified service unit may run on an independent thread, the thread occupies the dedicated memory, and the priority of the thread may be set to be the highest.
For each online task function module, the internal part can be predefined to adopt a basic scheduling clock as a clock reference for working or adopt a self scheduling clock as the clock reference for working. For example, if the clock cycle of the basic scheduling clock is 10 milliseconds, when a task functional module needs to work with 50 milliseconds as a clock reference, the task functional module may perform data reading, operation and storage once every 5 times of accumulated basic scheduling clocks after taking the first basic scheduling clock as the first self scheduling clock and performing data reading, operation and storage. The own scheduling clock of the task function is thus, as shown in fig. 2, 5 times the clock period of the basic scheduling clock.
In the existing data distribution system, each task functional module only uses a unified clock in the module, and when the task functional modules work cooperatively, the phenomenon of asynchronism or time sequence confusion may occur due to factors such as data transmission delay or interference. In contrast, in the embodiment of the present invention, based on the unified clock management module, each online task function module responds to the basic scheduling clock or the self scheduling clock, and sequentially performs reading, operation, and storage of data in each clock cycle, that is, in each clock cycle, data required for performing an operation is read from a computational memory first, then the operation is performed, and after the operation is completed, an operation result is stored into a corresponding memory space; thus, the synchronization between the task function modules on the clock can be ensured.
Because the embodiment of the invention decouples the coupling relation between the task function modules on the interface and the protocol, the decoupling on the logic relation can be realized when the task function modules work cooperatively after the clock synchronization problem between the task function modules is further solved. Therefore, the decoupling-free digital development platform provided by the embodiment of the invention is used for developing digital equipment, the decoupling among task function modules on an interface, a protocol and logic can be realized, and the complexity of the digital equipment is reduced, so that the research and development cost and the test cost are effectively reduced, and the research and development efficiency of the digital equipment is improved.
In order to better illustrate the beneficial effects of the embodiment of the present invention, an application scenario in which the embodiment of the present invention can effectively reduce the development cost and the test cost of the digital device is illustrated below.
In an application scenario, if the type and the length of data output by a certain task function module in digital equipment need to be changed, the data structure body only needs to be correspondingly updated through a platform; similarly, all task function modules copy and use the updated data structure body, and then the change of the digital equipment can be completed. Because the corresponding memory spaces of the task function modules are generated based on the corresponding definitions of the data in the data structure, after all the task function modules update the data structure, the respective corresponding memory spaces of the task function modules are also adapted to be dynamically updated, and the error of preempting the memory among the task function modules can not occur.
In contrast, when the same scenario occurs in the data distribution system, besides the configuration file of the task function module needs to be changed, a plurality of parties need to manually check all task function modules related to the changed data of the task function module and correspondingly modify the configuration files of all task function modules. Moreover, since the task function modules in the data distribution system each define their own data structure, the change of the data type and length may cause a working error of other task function modules related to the data, and at this time, a developer needs to modify the program code of the task function module again, and a joint debugging test is needed after the modification.
In another application scenario, the digitizer needs to be reconfigured, and new data (e.g., temperature data) needs to be collected and input to the existing task function. For the embodiment of the invention, only the data structure body is required to be modified, a task function module for acquiring the novel data is newly built, and the modified data structure body is updated to all task function modules.
When the same scene occurs in the data distribution system, all configuration files and program codes of the task function modules which need to use the novel data need to be modified and tested.
Based on the two typical application scenarios, the embodiment of the invention can effectively reduce the development cost and the test cost of the digital equipment.
Optionally, in an implementation manner, as shown in fig. 3, a generalized communication library is disposed in the uncoupled digital development platform provided in an embodiment of the present invention, where the generalized communication library includes a plurality of communication conversion protocols, and the communication conversion protocols are protocols for implementing format conversion of external data in the platform; the internal data is defined in the data structure, and the external data is undefined in the data structure after data format conversion. Therefore, when a user develops a task function module by using the uncoupled digital development platform, the user can directly call a communication conversion protocol in the library to perform unified format conversion on DIO (direct I/O), AIO (asynchronous I/O), interfaces, buses, audios, videos, radars and/or other stream data at the periphery of the digital equipment, so that the workload of developers is reduced.
And based on the generalized communication library, developers do not need to put efforts on conversion and processing of a communication interface protocol, but only need to put efforts on realizing the functional performance and algorithm of the task functional module. Therefore, even developers unfamiliar with various buses and communication interfaces can develop all functional modules of complex digital equipment in parallel by using the uncoupled digital development platform provided by the embodiment of the invention.
In practical applications, there are a variety of data that can be involved in digitizing equipment. Such as emergency data, periodic status data, streaming data, operational status data, diagnostic/log messages, configuration data, and the like. With the generalized communication library, these data can be converted into data defined in a data structure. For example, the basic scheduling clock in the embodiment of the present invention is converted from a clock signal local to the computer.
In one embodiment, when a piece of digital equipment is developed by using the uncoupled digital development platform provided by the embodiment of the present invention, each task function module of the digital equipment may include multiple ones of the following task function modules:
the device comprises a device simulation module, a device test module, a device state monitoring module, a data storage module, a data playback module, a device operation control module, a data acquisition module, an algorithm decision module and an external interaction module.
In addition, the system can also comprise a sensing module, and the sensing module can be composed of 1 or more sensor modules in actual equipment and is mainly used for sensing the external state. If the temperature sensor collects the external temperature, the laser radar module can measure the three-dimensional information of the external object in real time, and the millimeter wave radar model module can measure the target information in front in real time. These perception model modules may be independent entities or a combination of several functions.
As can be seen from the above examples of the task function module, when the uncoupled digital development platform provided by the embodiment of the present invention is used for developing digital equipment, task function models at each stage of simulation, research and development and testing can be developed in parallel.
It should be noted that the above examples of the task function module are only examples, and do not limit the embodiments of the present invention.
In an optional implementation manner, the unified service unit issues the scheduling frame in a broadcast mode to issue the basic scheduling clock to all task function modules;
the scheduling frame includes a field for configuring the clock period of the basic scheduling clock, a field for counting the number of times of distribution of the basic scheduling clock, and a distribution timestamp. The scheduling clock of each functional module corresponds to the transmission rate one by one.
The basic scheduling clock is issued based on the scheduling frame, so that the clock period of the basic scheduling clock can be flexibly and allocable. And after receiving the scheduling frame, each task function module can extract the time stamp from the scheduling frame to acquire absolute time and extract the number of times of issuing to acquire relative time. Therefore, when the task functional module responds to the basic scheduling clock and reaches the self scheduling clock, the task functional module executes reading, operation and storage of data, and both absolute time and relative time are available for reference.
For example, a timestamp and a count of the number of releases of the underlying scheduling clock for the functional module used to implement data playback may provide critical time information for data playback.
When the task function module is positioned on the same computer, the interaction of the data frame and the scheduling frame is realized through process communication, and when the task function module is positioned on different computers, the interaction of the data frame and the scheduling frame is realized through a synchronous concurrent network;
the frame format of the scheduling frame is the same as that of the data frame, and the data frame or the scheduling frame is represented by the difference of the numerical values of the fixed bytes.
Fig. 4 exemplarily shows a frame structure of a schedule frame, which is a frame for transferring a data frame. The method comprises the steps of converting fields of an address (ID) and a data offset address (memory address) of a task function module in a data frame into fields of clock cycles of a configuration basic scheduling clock, wherein each byte corresponds to one clock cycle, and if the clock cycles are different, the transmission rates are different.
In a preferred implementation, in order to avoid the "data overheating" phenomenon (data cannot be received in time due to too long operation time), any task function module, in response to the basic scheduling clock or the self scheduling clock, sequentially performs reading, operation and storage of data in each clock cycle, and may include:
(1) responding to the basic scheduling clock, and reading data related to the input of the basic scheduling clock from a computer memory when the basic scheduling clock reaches the self scheduling clock;
(2) and executing data operation based on the read data according to the data processing strategy selected in the task function module, and storing an operation result into a memory space corresponding to the task function module.
The data processing strategy selected in any task function module comprises the following steps:
caching the read data into a first queue with unlimited length, and performing data operation based on the data stored in the first queue; or,
strategy two, covering the read data in the last clock cycle by the read data, and executing data operation based on the latest read data; or,
caching the read data into a second queue with a preset length, and popping up the earliest stored data in the second queue if the second queue is full; data operations are performed based on the data stored in the second queue.
It can be understood that the task function module with higher requirement on data timeliness may select the above policy two as the data processing policy. The task function module which has low requirement on data timeliness but requires data integrity can select the first strategy as a data processing strategy. And the task function module with certain requirements on data timeliness and integrity can select the third strategy as a data processing strategy.
In addition, in order to avoid the "data under-voltage" phenomenon (only one round of data is received in multiple rounds of calculation), the data processing strategy selected in any task function module may further include:
if the read data is not enough to execute the data operation of the current time, the data operation of the current time is executed by combining the read data of the current time and the data read in the last clock cycle; or if the read data is not enough to execute the data operation of this time, clearing the data read this time, and skipping the data operation and storage steps of this time.
Preferably, the task function module receives, calculates and stores the execution data by using independent threads respectively.
For example, as shown in FIG. 5, at the beginning of a clock cycle, the platform collects data for TASK function Module 1(TASK 1); after collecting the data, the platform notifies TASK1 to read the data (XI); executing operation (complete) after the TASK1 reads the data; after the computation is completed, the TASK1 outputs data (XO) to the platform, and the platform stores the data in the memory space ((DTDB PUT)) corresponding to the TASK 1. After the platform collects data for the TASK1, the data can be collected for the TASK2 at the same time, so that the TASK1 and the TASK2 can run in parallel.
In some digital equipment, task function a is responsible for generating the data that task function B, C, D needs to consume in one clock cycle, and all 4 task functions need to complete their respective tasks in one clock cycle. At this time, the above-mentioned parallel processing mechanism may cause the logical relationship of the task function module A, B, C, D to be disturbed, so that the sub-frame working mechanism may be introduced to solve this problem.
Specifically, as shown in fig. 6, one clock cycle is divided into two subframes: T0-T01 and T01-T1. In other words, in one clock cycle, the task function module can be executed in two stages, and at the beginning of the clock cycle, the task a is firstly executed in the sub-frames T0-T01, and the input data required by the task B, C, D is output; after the task A is finished, the tasks B, C, D are sequentially operated in the sub-frames T01-T1. Wherein the length of the two subframes is not fixed. In this way, relatively short subframes may be allocated for task processes that are not time consuming and relatively resource efficient.
In addition, a timeout handling mechanism may also be provided in the platform. The following two timeout mechanisms can be selected according to the actual requirements of the digital equipment:
1. a task function is considered to be timeout if it does not complete its operation at the end of a clock cycle.
2. If a task functional module does not complete the operation and data output at the end of a clock cycle, it can continue the operation until the data output is completed. In this case, the task function module may suspend operation in the next clock cycle, and wait for the next clock cycle to continue normal operation.
In practical applications, for the second timeout mechanism, the following parameters can be set inside the task function module to ensure that this mechanism is prevented from being triggered frequently:
allowing for extended operation times, allowing for the number of consecutive timeouts, and allowing for the total number of timeouts.
The invention discloses a multi-machine no-coupling digital development platform connected through a synchronous concurrent network, wherein the no-coupling digital development platform of a plurality of machines is connected in a single clock synchronous concurrent network in a tree-shaped topological structure, each machine is used as a node in a distributed development network, and hardware clocks of all the nodes in the single clock synchronous concurrent network are globally unified and are used for developing each task function module of digital equipment; the platform defines a data structure body by itself, and data output by each task function module can be read in through the data structure body; the platform provides a corresponding model container for each task function module, and data output by the task function modules are stored into a memory space uniquely corresponding to the task function modules by the corresponding model containers; therefore, data interaction between the task function modules can be realized by directly accessing the global dynamic space without additionally arranging a database; in addition, the data interaction mode does not need to analyze the name and the type of each item of data, the dependency relationship with the system and other information according to the configuration file, so that the decoupling of the interfaces and the protocols between the task function modules is realized, and the direct memory access speed is higher, so that the cooperation efficiency between the task function modules is greatly improved.
In addition, the platform of each machine provides a unique memory for the task function module, and the task function module is given a function of determining whether the task function module has a function of issuing the basic scheduling clock or not in a mode of locking the special memory, so that the basic scheduling clock is issued to all the task function modules, each task function module executes a data process of the task function module and synchronizes to other task function modules. The on-line task function modules can respond to the basic scheduling clock, and then sequentially execute reading, operation and storage of data when the self scheduling clock is reached, so that the synchronism among the task function modules on the clock is ensured.
In summary, the decoupling of the interface, the protocol and the logic between the task function modules can be realized by using the decoupling-free digital development platform of the synchronous concurrent distributed network to develop the digital equipment, and the complexity of the digital equipment is reduced, so that the research and development cost and the test cost can be effectively reduced, and the research and development efficiency of the digital equipment is improved.
The non-coupling digital development platform provided by the embodiment of the invention can be applied to the development of electronic and electrical equipment such as aviation, vehicle-mounted equipment, ship-based equipment, satellite-based equipment and the like, can effectively reduce the large-range double-V-shaped verification and integrated test process caused by system design change, is particularly suitable for developing high-fault-tolerance and high-redundancy complex equipment/systems, can be applied to the development activity of the whole life cycle of digital equipment/systems, effectively coordinates the contradiction between a host provider and a supplier, and realizes parallel collaborative development.
In the description herein, references to the description of the term "one embodiment," "some embodiments," "an example," "a specific example," or "some examples," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the invention. In this specification, the schematic representations of the terms used above are not necessarily intended to refer to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, various embodiments or examples described in this specification can be combined and combined by those skilled in the art.
While the present application has been described in connection with various embodiments, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed application, from a review of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the word "a" or "an" does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
As will be appreciated by one skilled in the art, embodiments of the present invention may be provided as a computer program product. Accordingly, this application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "module" or "system. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein. A computer program stored/distributed on a suitable medium supplied together with or as part of other hardware, may also take other distributed forms, such as via the Internet or other wired or wireless telecommunication systems.
The foregoing is a more detailed description of the invention in connection with specific preferred embodiments and it is not intended that the invention be limited to these specific details. For those skilled in the art to which the invention pertains, several simple deductions or substitutions can be made without departing from the spirit of the invention, and all shall be considered as belonging to the protection scope of the invention.
Claims (10)
1. A multi-machine no-coupling digital development platform connected through a synchronous concurrent network is characterized in that the no-coupling digital development platform runs on a plurality of machines, the no-coupling digital development platforms of the machines are connected in a single clock synchronous concurrent network in a tree-shaped topological structure, the machines serve as one node in a distributed development network, all the nodes are globally unified by hardware clocks in the single clock synchronous concurrent network, and the no-coupling digital development platforms of the machines are used for developing each task function module of digital equipment;
the non-coupling digital development platforms of the machines provide corresponding model containers for each task function module, and the model containers are used for transferring data read in or written out by each task function module to corresponding address memories of the global dynamic space;
the method comprises the following steps that a non-coupling digital development platform of a plurality of machines jointly sets a data structure body for defining data of all task function modules and an interface for reading in the data of all task function modules according to the definition of the data structure body;
the non-coupling digital platform of the machines also provides a unified service unit for each task function module;
each unified service unit is used for determining whether to issue a basic scheduling clock or not by trying to lock a special memory in a global dynamic space when a task function module to which the unified service unit belongs is online;
each task functional module responds to the basic scheduling clock and executes reading, operation and storage of data so as to acquire data of other task functional modules and synchronize the data of the task functional module to the other task functional modules.
2. The uncoupled digital development platform of claim 1,
the non-coupling digital platforms of the machines are also used for queuing the data of all the task function modules according to a preset rule and synchronously broadcasting the queued data to all the task function modules;
and transmitting the global data of the self global dynamic space to other nodes in the single clock synchronization concurrent network.
3. The uncoupled digital development platform as claimed in claim 1, wherein each unified service unit, when the task function module to which the unified service unit belongs is online, determines whether the unified service unit itself issues the basic scheduling clock by attempting to lock the dedicated memory in the global dynamic space, comprises:
each unified service unit is used for trying to lock the special memory in the global dynamic space when the task function module to which the unified service unit belongs is on line, if the special memory is locked, the locking fails, and if the locking succeeds, the unified service unit can be determined to issue the basic scheduling clock.
4. The uncoupled digital development platform of claim 1 wherein each task function, responsive to the underlying scheduling clock, performs the reading, the computing, and the storing of the data comprising:
each task function module judges whether the scheduling clock of the task function module is the same as the basic scheduling clock when receiving the basic scheduling clock so as to determine whether the task function module can perform scheduling, and if so, the task function module sequentially executes reading, operation and storage of data; if not, after the self scheduling clock is waited to arrive, reading, calculating and storing the data in sequence;
wherein the scheduling clock of each task functional module is an integral multiple of the basic scheduling clock.
5. The uncoupled digital development platform according to claim 4, characterized in that each functional module has its own scheduling clock in one-to-one correspondence with transmission rate,
each unified service unit issues a basic scheduling clock to all task function modules by issuing a scheduling frame in a broadcasting mode;
the scheduling frame includes a field for configuring the clock period of the basic scheduling clock, a field for counting the number of times of distribution of the basic scheduling clock, and a distribution timestamp.
6. The uncoupled digital development platform of claim 1 wherein each task functional module, responsive to the base scheduling clock, performs the reading, computing and storing of data comprising:
reading data related to self input from a computer memory in response to a basic scheduling clock or a self scheduling clock;
executing data operation based on the read data according to the data processing strategy selected by the task function module, and storing an operation result into a memory space corresponding to the global dynamic space of the task function module;
the selected data processing strategy in the task function module comprises the following steps:
caching the read data into a first queue with unlimited length, and executing data operation based on the data stored in the first queue; or,
covering the read data in the last clock cycle with the read data, and performing data operation based on the latest read data; or,
caching the read data into a second queue with a preset length, and popping up the earliest stored data in the second queue if the second queue is full; data operations are performed based on the data stored in the second queue.
7. The uncoupled digital development platform of claim 6 wherein the selected data handling policy in any task function module further comprises:
if the read data are not enough to execute the data operation of this time, the data operation of this time is executed by combining the data read this time and the data read in the last clock cycle; or,
and if the read data is not enough to execute the data operation of this time, clearing the data read this time, and skipping the data operation and storage steps of this time.
8. The uncoupled digital development platform according to claim 1, wherein when all task function modules are located on the same computer, the interaction of the data frame and the schedule frame is realized through process communication, and when located on different computers, the interaction of the data frame and the schedule frame is realized through a synchronous concurrent network;
the frame format of the scheduling frame is the same as that of the data frame, and the data frame or the scheduling frame is represented by different values of fixed bytes.
9. The uncoupled digital development platform according to claim 1, wherein the task function module sends a heartbeat packet to the corresponding model container when being online, so that the uncoupled digital development platform where the task function module is located generates and outputs information on whether each task function module is online according to the heartbeat packet;
when a task function module which issues a basic scheduling clock is not continuously detected to send heartbeat packets, determining that the task function module is disconnected, and resetting all online task function modules on the platform per se;
wherein, the data load of the heartbeat packet comprises: the ID of the task function module and the platform ID of the uncoupled development platform.
10. The uncoupled digital development platform as claimed in claim 1, wherein the uncoupled digital development platform of the plurality of machines is provided with a generalized communication library for a user to select when developing the task function module;
the generalized communication library comprises a plurality of communication conversion protocols, and the communication conversion protocols are protocols for realizing format conversion of internal and external data of the platform; the internal data is data defined in the data structure, and the external data is data undefined in the data structure.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210527632.8A CN114625359B (en) | 2022-05-16 | 2022-05-16 | Multi-machine no-coupling digital development platform connected through synchronous concurrent network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210527632.8A CN114625359B (en) | 2022-05-16 | 2022-05-16 | Multi-machine no-coupling digital development platform connected through synchronous concurrent network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114625359A true CN114625359A (en) | 2022-06-14 |
CN114625359B CN114625359B (en) | 2022-08-05 |
Family
ID=81907092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210527632.8A Active CN114625359B (en) | 2022-05-16 | 2022-05-16 | Multi-machine no-coupling digital development platform connected through synchronous concurrent network |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625359B (en) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408222A (en) * | 2014-10-13 | 2015-03-11 | 中国电子科技集团公司第十研究所 | Reconfiguration method of real-time distributed simulation platform |
CN105676644A (en) * | 2016-03-04 | 2016-06-15 | 南京理工大学 | Decoupling control method of multi-freedom precision positioning platform |
WO2018089987A1 (en) * | 2016-11-14 | 2018-05-17 | Temple University-Of The Commonwealth System Of Higher Education | System and method for network-scale reliable parallel computing |
CN109213671A (en) * | 2017-06-30 | 2019-01-15 | 中国航发商用航空发动机有限责任公司 | Method for testing software and its platform |
US20190205272A1 (en) * | 2019-03-12 | 2019-07-04 | Intel Corporation | Compensation for hold-over errors in distributed clock synchronization |
US20200314168A1 (en) * | 2019-03-27 | 2020-10-01 | International Business Machines Corporation | Distributed code execution involving a serverless computing infrastructure |
CN111930492A (en) * | 2020-10-12 | 2020-11-13 | 南京赛宁信息技术有限公司 | Task flow scheduling method and system based on decoupling task data model |
WO2021000379A1 (en) * | 2019-07-02 | 2021-01-07 | 网宿科技股份有限公司 | Network data scheduling method and edge node |
CN113722817A (en) * | 2021-08-08 | 2021-11-30 | 中国航空工业集团公司沈阳飞机设计研究所 | Distributed simulation system operation scheduling platform |
CN114039693A (en) * | 2021-11-04 | 2022-02-11 | 西安数道航空技术有限公司 | Single clock synchronous concurrent network and data circulation method thereof |
CN114039909A (en) * | 2021-11-04 | 2022-02-11 | 西安数道航空技术有限公司 | Method for realizing rapid real-time spanning tree protocol |
CN114254039A (en) * | 2021-12-02 | 2022-03-29 | 东方财富信息股份有限公司 | Distributed synchronization system |
-
2022
- 2022-05-16 CN CN202210527632.8A patent/CN114625359B/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408222A (en) * | 2014-10-13 | 2015-03-11 | 中国电子科技集团公司第十研究所 | Reconfiguration method of real-time distributed simulation platform |
CN105676644A (en) * | 2016-03-04 | 2016-06-15 | 南京理工大学 | Decoupling control method of multi-freedom precision positioning platform |
WO2018089987A1 (en) * | 2016-11-14 | 2018-05-17 | Temple University-Of The Commonwealth System Of Higher Education | System and method for network-scale reliable parallel computing |
CN109213671A (en) * | 2017-06-30 | 2019-01-15 | 中国航发商用航空发动机有限责任公司 | Method for testing software and its platform |
US20190205272A1 (en) * | 2019-03-12 | 2019-07-04 | Intel Corporation | Compensation for hold-over errors in distributed clock synchronization |
US20200314168A1 (en) * | 2019-03-27 | 2020-10-01 | International Business Machines Corporation | Distributed code execution involving a serverless computing infrastructure |
WO2021000379A1 (en) * | 2019-07-02 | 2021-01-07 | 网宿科技股份有限公司 | Network data scheduling method and edge node |
CN111930492A (en) * | 2020-10-12 | 2020-11-13 | 南京赛宁信息技术有限公司 | Task flow scheduling method and system based on decoupling task data model |
CN113722817A (en) * | 2021-08-08 | 2021-11-30 | 中国航空工业集团公司沈阳飞机设计研究所 | Distributed simulation system operation scheduling platform |
CN114039693A (en) * | 2021-11-04 | 2022-02-11 | 西安数道航空技术有限公司 | Single clock synchronous concurrent network and data circulation method thereof |
CN114039909A (en) * | 2021-11-04 | 2022-02-11 | 西安数道航空技术有限公司 | Method for realizing rapid real-time spanning tree protocol |
CN114254039A (en) * | 2021-12-02 | 2022-03-29 | 东方财富信息股份有限公司 | Distributed synchronization system |
Non-Patent Citations (3)
Title |
---|
MOHAMMAD H. FOROOZANNEJAD: "Time-Scalable Mapping for Circuit-Switched GALS Chip Multiprocessor Platforms", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
姜晓辉等: "分布式集群处理环境平台软件技术研究", 《吉林大学学报(信息科学版)》 * |
程文迪等: "基于网络中心化与面向服务的作战仿真软件架构", 《系统仿真学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114625359B (en) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3667496B1 (en) | Distributed computing system, data transmission method and device in distributed computing system | |
US5968115A (en) | Complementary concurrent cooperative multi-processing multi-tasking processing system (C3M2) | |
US5566349A (en) | Complementary concurrent cooperative multi-processing multi-tasking processing system using shared memories with a minimum of four complementary processors | |
CN102902620B (en) | GDB (genome database) based heterogeneous computing and debugging environment realizing system | |
Mahadevan et al. | ARTS: A SystemC-based framework for multiprocessor systems-on-chip modelling | |
CN117215738A (en) | Data intensive computing imaging optimization system based on distributed system | |
CN112256406A (en) | Operation flow platformization scheduling method | |
CN115328679A (en) | Automatic integration method of heterogeneous function library, computing equipment and system thereof | |
CN110955602A (en) | Distributed embedded software testing system based on resource sharing | |
Liu et al. | A programming system for autonomic self-managing applications | |
CN114625359B (en) | Multi-machine no-coupling digital development platform connected through synchronous concurrent network | |
CN110263371B (en) | IMA dynamic reconstruction process configuration path generation method based on AADL | |
US20150227661A1 (en) | Computer product, simulation apparatus, simulation method, bus model, and bus circuit | |
CN114625360B (en) | Coupling-free digital development platform and system | |
Rover et al. | Software tools for complex distributed systems: Toward integrated tool environments | |
Ovaska et al. | Model and quality driven embedded systems engineering | |
Kumar et al. | UML Profiles for Modeling Real-Time Communication Protocols. | |
US8250404B2 (en) | Process integrity of work items in a multiple processor system | |
Kim et al. | A tactic-based approach to embodying non-functional requirements into software architectures | |
Karsai et al. | A model-based front-end to TAO/ACE: the embedded system modeling language | |
Wu et al. | DSCWeaver: Synchronization-constraint aspect extension to procedural process specification languages | |
Franks | Simulating layered queueing networks with passive resources. | |
Honvault et al. | Novel generic middleware building blocks for dependable modular avionics systems | |
Cledou et al. | Verification of Real-Time Coordination in VirtuosoNext (extended version) | |
Kolesnikov et al. | Indigo: An infrastructure for optimization of distributed algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |