![](/images/new-backgrounds/1263550/263550191x1.webp)
As illustrated in Figure 3 Terminal Architecture, the Millennium ASIC processor runs programs that act as an interface between the ECR and the Ingenico 6500 terminal: the operating system, system and security application, maintenance application, and user application.
8.4.1Operating System
The operating system is comprised of several elements. Some of the more prominent ones are explained in this section.
Code File System
The operating system is separated in several code files, and any application can be implemented as one or several code files. Code files can be run and downloaded independently from each other. The Code File System (CFS) manages the storage of all code files in flash devices. A configuration file lists all the code files composing and describing an application. The System & Security Application manages the CFS.
Data File System
The Data File System (DFS) manages storage and organization of permanent data. The DFS enables each application to create directories and to store data in files inside flash devices.
Human Machine Interface
The Human Machine Interface (HMI) peripheral allows applications to interface to the human element of the system through the sensory input/output devices present in the system, such as the display, keypad, and buzzer.
Memory Management Unit
The Memory Management Unit (MMU) controls memory access permissions, aborting illegal accesses. It protects the memory of the operating system and of each application, so that applications cannot access or destroy data and code in the operating system or in other applications.
Each application is fire walled from the other applications using the MMU. Each application runs in its own MMU virtual context that prevents any other applications from accessing its data. The operating system runs inside its own MMU virtual context in supervisor mode.
Each application runs inside its own MMU virtual context in user mode. The MMU translates these virtual addresses into physical addresses. The MMU presents the physical memory locations to a program so it can access the code and data. This partitioning prevents any application from accessing other application data or operating system data.
All applications are linked at the same virtual address using the MMU. This allows independent development of all applications using the same framework. However, communications between applications are not completely prevented; they are managed through the PAM.
Application Manager Peripheral
The Application Manager peripheral (PAM) is the main component of the
88 | Chapter 8 | Architecture |
| Section 8.4 Terminal | Architecture |