88 Chapter 8 Architecture
Section 8.4 Terminal Architecture
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.1 Operating 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 multi-application
management system. It is in charge of the management of all UNICAPT32 native
applications, which run in the operating system simultaneously. The PAM provides
mechanisms that allow synchronization between applications and exchange of data.