Hechinger, O. (2013). Analysis of the failure behavior of memory management units [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2013.23180
Ein erfolgversprechender Ansatz, um die Komplexität sicherheitskritischer Systeme - wie zum Beispiel dem verteilten Netzwerk von Steuergeräten in einem modernen Auto - zu reduzieren, ist es die Funktionalität mehrerer Steuergeräte auf eines zusammenzufassen. Dadurch ergibt sich allerdings die Möglichkeit, dass sich andernfalls unabhängige Funktionalitäten gegenseitig beeinflussen. Deshalb wird in diesem Fall eine zuverlässige Abgrenzung zwischen den Funktionalitäten unverzichtbar. Eine Grundlage hierfür ist eine in Hardware realisierte Speicherabgrenzung. Diese Diplomarbeit beschreibt zwei unterschiedliche Speicherabgrenzungsmöglichkeiten. Dies sind einerseits die Hardware-realisierte Unterteilung in verschiedene Speicherregionen mittels einer Memory Protection Unit (MPU) und andererseits die vollständige Speichervirtualisierung durch virtuelle Speicherverwaltung. Letzteres ist der heutzutage übliche Ansatz in PCs sowie Smartphones und wird durch eine sogenannte Memory Management Unit (MMU) Hardware-unterstützt implementiert. Diese Arbeit wird ihr Hauptaugenmerk auf diese Hardwareeinheit und ihre Fehlermöglichkeiten legen. Uns ist bisher keine derartige Ausarbeitung über MMU Fehlermöglichkeiten bekannt. Die MMU Funktionen einer Auswahl moderner Prozessoren für eingebettete Systeme werden dargestellt und beschrieben. Auf Basis dieser Funktionen wird eine theoretische MMU, bestehend aus unterschiedlichen Blöcken, abstrahiert. Die Funktionen und Querverbindungen dieser Blöcke werden erklärt und auf ihre Fehlermöglichkeiten untersucht. Die Analyse beruht auf einer Einzelfehlerannahme bezüglich Fehler innerhalb der MMU und behandelt zusätzlich noch Kombinationen aus illegalen Speicherzugriffe des Prozessors mit internen Fehlern der MMU. Um diese theoretische Analyse zu bestätigen, zu erweitern oder zu widerlegen, wird eine simulationsbasierte Fehlereinstreuung in die MMU des LEON3 Prozessors durchgeführt. Diese Fehlereinstreuung deckt alle internen Signale einer synthetisierten Version dieser MMU ab und wird automatisiert durchgeführt sowie ausgewertet. Die Ergebnisse der Fehlereinstreuung werden auf ihre Validität und mögliche systematische Messabweichungen untersucht. Des Weiteren werden die Ergebnisse der theoretischen Analyse zugeordnet. Während die quantitative Vorhersage der Fehlerraten kein Ziel dieser Arbeit ist, wird gezeigt dass MMUs anfällig für kritische Fehlermöglichkeiten sind und deshalb ausreichend Schutzmaßnahmen getroffen werden müssen, wenn ihr Einsatz in sicherheitskritischen Systemen angestrebt wird. Überdies zeigt sich, dass die theoretische Analyse das festgestellte Fehlerverhalten ausreichend abdeckt. Zusätzlich werden besonders kritische Teile mit relativen Fehlerraten offenbart und verschiedene Schutzmaßnahmen beschrieben, sowie auf ihre Anwendbarkeit überprüft.
de
A promising approach for lowering the complexity of safety critical embedded systems like, e.g., the distributed network of Electronic Control Units (ECUs) in a modern car, is to combine the functionality of multiple ECUs in one unit. Doing so, however, gives rise to the problem of mutual influence of otherwise independent functionalities. Hence, proper separation in between them becomes critical and mandatory. One foundation for this is to introduce a hardware enforced memory separation. This work is going to describe two different memory protection mechanisms, i.e., the hardware enforced separation in multiple memory regions by a Memory Protection Unit (MPU) and the full memory virtualization by virtual memory. The latter is nowadays common in PCs and even mobile phones and is implemented in a hardware assisted fashion by using a Memory Management Unit (MMU). This work is going to put its focus on this hardware unit and its failure possibilities. To the best of our knowledge, no such in-depth elaboration about MMU failure modes exists. The MMU features provided by a selection of modern embedded system processors are presented and described. These features are then abstracted in a theoretical MMU, termed hypothetical MMU, consisting of multiple functional blocks. The functionalities and interconnections of these blocks are explained and an in-depth analysis of the failure modes of this MMU is provided. The analysis is based on a single-fault assumption w.r.t. faults within the MMU and additionally considers wrong memory accesses by the processor in combination with MMU internal faults. In order to confirm, extend or refute the theoretical analysis, a simulation based fault injection in the MMU of the LEON3 processor is performed. This fault injection covers all internal signals of a synthesized version of the MMU and is implemented with tool support. The results of the fault injection are analyzed for their validity and possible bias due to the implemented fault injection method. While the quantitative forecasting of failure rates is not an objective of this thesis, it is shown that MMUs are prone to critical failure modes and thus should be appropriately protected if a usage in a safety critical system is targeted. The fault injection shows that the theoretical analysis sufficiently covers the experienced failure behavior. Furthermore, especially critical components are pinpointed with relative failure rates and different fault mitigation mechanisms are presented along with an evaluation of their feasibility.
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in dt. Sprache