Der hardwaregestützte Speicherschutz wird mittels der vier Data Protection Register und der zwei Code Protection Register der TriCore Memory Protection Unit realisiert und ist für die unterschiedlichen Privilegstufen einzeln einstellbar. Dabei konfiguriert jedes Protection Register durch eine obere und eine untere Schranke sowie ihr Zugriffsrecht (lesend, schreibend, ausführend) ein zulässiges „Sichtfenster“ im Speicher. Das Umschalten der Protection Register für das jeweilige Software-Modul übernimmt PXROS-HR. Dabei wird ein unzulässiger Zugriff eines Moduls außerhalb des Sichtfensters während der Ausführung des Betriebssystems erkannt und behandelt.
Den typischen Aufbau von Software-Modulen (PXROS-HR-Tasks) zeigt Bild 2. Zwei der vier Data Protection Register konfigurieren die Bereiche für Stack und Konstanten einer Task. Die zwei verbleibenden Register können für den Austausch von Daten in Form von Nachrichten genutzt werden. Das Versenden einer Nachricht aus Task 1 und der Empfang der Nachricht in Task 2 entsprechen der Übergabe eines gekapselten Speicherbereiches (Objekt) inklusive Zugriffsrecht. Das geschützte Nachrichtenobjekt kann dabei eine beliebige Größe haben. Somit ist der Speicherverbrauch im Gegensatz zu Ansätzen, die den Schutz durch Mapping (MMU) realisieren, minimal. Die hierdurch erzielte Speichereffizienz ist gerade in Embedded-Anwendungen ein entscheidendes Kriterium, da hier nur wenig RAM zur Verfügung steht.
PXROS-HR garantiert in Kombination mit der MPU der TriCore-Architektur also einen fein-granularen Schutz, der sicher und bei rund 5 % Performance-Verlust gleichzeitig auch sehr effizient ist. In der Praxis bietet dieser Ansatz für alle Betroffenen, den Systemdesigner, den Software-Entwickler und letztlich auch den Produktmanager, signifikante Vorteile.
Rückwirkungen beseitigen bedeutet weniger Komplexität
Für den Systemdesigner bedeutet die Kapselung von Software-Modulen vor allem, dass sich die Komplexität des Software-Systems deutlich reduziert. Jedes Software-Modul ist rückwirkungsfrei und wird durch seine zugewiesenen Ressourcen konfiguriert. Gleichzeitig bewirkt die Rückwirkungsfreiheit eine risikofreie Kombination von sicherheitskritischen und nicht sicherheitskritischen Software-Modulen. In Summe führt dies zu einem vereinfachten und kostengüstigen Zertifizierungsprozess von derartigen Anwendungen.
Für Software-Entwickler bringt die Kapselung unter anderem den Vorteil, dass durch die Unabhängigkeit der Software-Module ein einfacher Modultest möglich ist. Die Einhaltung der durch den Systemdesigner vorgegebenen Speicherressourcen für den Software-Entwickler wird durch die MPU erzwungen. Eine Schutzverletzung, zum Beispiel durch einen ungewollten Pointerzugriff oder transienten Fehler verursacht, führt zu keinerlei Beeinträchtigung des restlichen Systems. Durch die gekapselte Struktur ist eine sichere und einfache Funktionsintegration möglich, da Fehler in Software-Modulen zu einem frühen Zeitpunkt der Entwicklung aufgedeckt werden können. Voraussetzung ist freilich, dass auch die verwendeten Debug-Werkzeuge wie z.B. die Universal Debug Engine (UDE) von pls Programmierbare Logik und Systeme die verwendeten Mechanismen beachten und zwei wesentliche Betriebsarten unterstützen.