## 3 A Simulation and Verification Platform for Avionics Systems Based on FACE Architecture
### Communication Management  
Communication management is implemented by using memory database technology, which manages the data uniformly and resides in the system memory, shields the I/O bottleneck of traditional databases, enhances the real-time data interaction, and ensures the consistency and integrity of the interactive data. The main memory database used in this paper is the storage space based on shared memory. Therefore, all relevant processes can access the data in the database. The main memory database architecture is shown in Figure 7.  
The main memory database provides rich interfaces to support access to all data in the database and provides structure and functions for the conversion of variables and mappings. At the same time, the rich data in the database is generated by reading and processing the configuration file, the specific configuration operation will be introduced in detail in the next section. Therefore, the main memory database not only provides the  
Figure 5: Board scheduling framework.  
Figure 6: Model scheduling framework.  
interaction of data but also provides the interaction between heterogeneous data. The access between heterogeneous data can be as simple as the access variable without any obstacles.  
The main memory database includes the data objects needed for the design of the simulation model and data processing in each subsystem. The design meets the requirements of flight integration and verification for shared data. Local shared memory and Ethernet shared memory are used to store and operate shared data in a single machine and distributed situations, respectively.  
In the shared memory, all the interactive data between the various application systems are saved, and the global data table, global variable table, and global mapping table are stored in the form of tables. According to the information in the table, the table index tree, variable index tree, and mapping index tree are all created in the shared memory. Meanwhile, when the data in the application cache is synchronized with data in the shared memory, mutual exclusion access to the shared memory is guaranteed by setting the spinlock.  
The main memory database function is divided into several modules, which realize the decoupling of the main memory database and improve system portability. Each module cooperates with all others to realize the functional operation of the main memory database.  
When the platform starts, the system manager will be created, which will record the shared memory address and system management information, and store the required table, index tree, and memory database information. The design of the kernel data structure is shown in Figure 8, there are five tables in the system table:  
1. Node information table, which records lock information for each node in distributed communication mode.  
2. Idle blocks table, which stores unused idle blocks.  
3. Variable list, which stores the table content parsed by the configuration file.  
4. Mapping list, which stores the mapping relationship parsed through the configuration file.  
5. Host linked list, which stores the module information parsed by the configuration file.  
In order to quickly query the variable table, variable, and mapping position in the system table, the B tree is established to index, the B tree memory contains three trees:  
1. A variable table tree, which is used to index the variable table.  
2. A variable tree, which is used to index variables.  
3. A mapping tree, which is used to index mapping.  
In addition, the B tree memory contains an idle block list for use when the B tree memory creates the B tree.  
Figure 7: Main memory database architecture.