-
Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem mit den Merkmalen des Oberbegriffs des Anspruchs 1.
-
Elektronische Datenverarbeitungssysteme sind komplexe Gebilde zur Lösung von Datenverarbeitungsaufgaben. Sie setzen sich aus Teilsystemen zusammen, deren Zusammenwirken erst die Aufgabenerfüllung ermöglicht. Wichtige Teilsysteme sind: a) Die instrumentalen Komponenten: Hardware, Software, Firmware (Mikroprogrammierung), Orgware (Organisationswissen) und b) die Komponenten der Anwendungsseite: Aufgaben, Benutzer, Bedienung (Operating) und Systempflege.
-
Herkömmliche Rechnersysteme basieren auf dem Prinzip der Von-Neumann-Architektur.
-
Die Hauptidee der von-Neumann-Hardwarearchitektur ist, dass ein gemeinsamer Speicher für Software und Daten vorliegt, wodurch sich die Software selbst verändern kann. Fünf Funktionseinheiten liegen der Architektur zugrunde: ein Steuerwerk, ein Rechenwerk, ein Speicher, ein Eingabewerk und ein Ausgabewerk. Die zentrale Einheit bilden dabei der Arbeitsspeicher und der Hauptprozessor, der das Steuer- und Rechenwerk beinhaltet. Der Hauptprozessor transportiert Informationen aus dem Arbeitsspeicher in die eigenen Register und zurück über ein Bussystem, welches aus einem bidirektionalem Instruktionsbus und einem bidirektionalen Operandenbus besteht. Tatsächlich transportieren beide Busse Informationen die je nach betrachtetem Bus als Instruktionen bzw. Operanden interpretiert werden. Bestimmt werden die transportierten Daten jedoch durch ihre jeweilige Adresse. Beide Busse haben üblicherweise Zugriff auf dieselben Arbeitsspeicherbereiche. Ferner sind bei herkömmlichen Rechnern Instruktionen und Operanden ohne wechselseitige Abtrennung abgelegt, so dass Operanden wie Instruktionen über jeden der beiden Busse transportiert werden können.
-
In der heutigen Zeit, in der die Benutzung von Computern allgegenwärtig den menschlichen Alltag beherrscht, ist die Gewährleistung von Sicherheit bei der Benutzung von Rechnersystemen ein essentieller Gesichtspunkt.
-
Sogenannte Schadsoftware kann in Form von Computerprogrammen vom Benutzer unerwünschte und gegebenenfalls schädliche Funktionen innerhalb des Rechnersystems ausführen. Schadsoftware profitiert von der Hardwarearchitektur handelsüblicher Rechner insofern, dass sie in Gestalt von Operanden oder modifizierten Instruktionen in die Arbeitsspeicherbereiche und von dort über den Instruktionsbus zu den Prozessoren gelangen, in denen sie ihre schädliche Auswirkung verursachen.
-
Nach dem Stand der Technik erfolgt der Schutz von Rechnersystemen vor Schadsoftware durch den Einsatz von Abwehrsoftware, die solche Schadsoftware erkennt und in geeigneter Weise behandelt. Dieses Verfahren hat als wesentlichen Nachteil, dass es den Kreationen der Ersteller von Schadsoftware zeitlich stets hinterher hinkt, da neue Schadsoftware erst erkannt werden muss um ein Gegenmittel zu programmieren, welches schließlich installiert und integriert wird. Ferner benötigt diese Abwehrsoftware Betriebsmittel, die für den ursprünglich vorgesehenen Einsatz der Rechner nicht mehr zur Verfügung stehen.
-
Aus der Schrift
DE 199 50 255 B4 ist eine Optimierung von Mikroprozessoren bekannt, die es erlaubt, den Durchsatz der CPU zu verbessern, indem die Effizienz der Nutzung der Busse verbessert wird. Dabei werden Daten und Instruktionen sowohl beim Zugriff als auch bei der Speicherung getrennt behandelt. Eine Hardware gewährleistete Sicherheit vor Schadsoftware ist nicht offenbart.
-
Die
US 7,000,092 B2 offenbart ein Referenzsystem für das Zusammenwirken mehrerer Prozessoren. Auch hier ist eine Hardware gewährleistete Sicherheit vor Schadsoftware nicht vorgesehen.
-
Aus der Schrift
US 8,117,642 B2 ist eine Hardware bekannt, die zwischen einem privilegierten und als sicher angesehenen Modus und einem nicht privilegierten, potentiell unsicheren Modus unterscheidet, wobei Instruktionen auf der Ebene von Routinen diesen Modi eindeutig und fest zugeordnet sind. Ein absoluter Schutz von schutzwürdigen Daten, wenn der Prozessor im potentiell unsicheren Modus läuft, ist jedoch nicht gegeben.
-
Es ist eine Aufgabe der vorliegenden Erfindung ein Datenverarbeitungssystem so bereitzustellen, dass die zugrunde gelegte Hardwarearchitektur vor Auswirkungen von Schadsoftware schützt.
-
Diese Aufgabe wird von einem Datenverarbeitungssystem mit den Merkmalen des Anspruchs 1 gelöst.
-
Danach ist ein Datenverarbeitungssystem aufweisend wenigstens einen Hauptprozessor, wenigstens einen permanenten Datenspeicher und wenigstens einen Arbeitsspeicher, wobei der wenigstens eine Hauptprozessor mit wenigstens einer Ein-/Ausgabe-Hardware (Interface) verbunden ist, und wobei der wenigstens eine Hauptprozessor mit dem wenigstens einen Arbeitsspeicher über wenigstens einen Instruktionsbus und über wenigstens einen Operandenbus kommuniziert und getrennt davon bidirektional mit dem wenigstens einen permanenten Datenspeicher kommuniziert, vorgesehen mit wenigstens einem Ladeprozessor, der bidirektional mit wenigstens einem permanenten Software-Speicher und wenigstens einem externen Software-Speicher kommuniziert und der mit dem wenigstens einen Arbeitsspeicher über wenigstens einen Instruktionsbus und über wenigstens einen Operandenbus getrennt und unabhängig von dem wenigstens einen Hauptprozessor kommuniziert, wobei die Kommunikation zwischen dem wenigstens einen Hauptprozessor und dem wenigstens einen Arbeitsspeicher über den wenigstens einen Instruktionsbus und den wenigstens einen Operandenbus erfolgt, die Kommunikation zwischen dem wenigstens einen Ladeprozessor und dem wenigstens einen Arbeitsspeicher über den wenigstens einen Instruktionsbus und den wenigstens einen Operandenbus erfolgt, sowohl die Kommunikation zwischen dem wenigstens einem Hauptprozessor und der wenigstens einen Ein-/Ausgabe-Hardware sowie dem wenigstens einen permanenten Datenspeicher als auch die Kommunikation zwischen dem wenigstens einen Ladeprozessor und dem wenigstens einen externen Software-Speicher sowie dem wenigstens einen permanenten Software-Speicher über Zugriffsattribute kontrolliert sind. Durch das Vorhandensein des Hauptprozessors und des davon getrennten Ladeprozessors werden die Prozessoraufgaben strikt getrennt.
-
Dabei ist es bevorzugt vorgesehen, dass die Daten in dem wenigstens einen Arbeitsspeicher nach Datenkategorien kategorisiert sind, wobei in Abhängigkeit von den Kategorien unterschiedliche Zugriffsattribute definiert sind, nämlich Hauptprozessor-Zugriffsattribute für den wenigstens einen Hauptprozessor und Ladeprozessor-Zugriffsattribute für den wenigstens einen Ladeprozessor, und wobei Daten gleicher Datenkategorien gleiche Hauptprozessor-Zugriffsattribute für den Zugriff durch den wenigstens einen Hauptprozessor und gleiche Ladeprozessor-Zugriffsattribute für den Zugriff durch den wenigstens einen Ladeprozessor aufweisen. Somit wird die Trennung der Prozessoraufgaben auf der Ebene der Daten weitergeführt, in dem bestimmte Datenkategorien den unterschiedlichen Prozessoraufgaben mit Zugriffsattributen zugeordnet werden, wobei die Zugriffsattribute von Hauptprozessor und Ladeprozessor auf die selbe Datenkategorie verschieden sein können.
-
Dabei ist es vorteilhaft, wenn für jede Datenkategorie wenigstens ein separater Arbeitsspeicher vorgesehen ist. Die Separation wird somit auch physisch vorgenommen, was die strikte Trennung weiter unterstützt.
-
Vorzugsweise sind folgende Datenkategorien vorgesehen: Adressdaten, Instruktionen, funktionsinterne Daten, Zieldaten des wenigstens einen Hauptprozessors (Hauptprozessorzieldaten) und Zieldaten des wenigstens einen Ladeprozessors (Ladeprozessorzieldaten).
-
Um das Rechnersystem vor Schadsoftware zu schützen ist die Trennung von Datenkategorien und Prozessoraufgaben durch Hauptprozessor- und Ladeprozessor-Zugriffsattribute kontrolliert. Dabei ist es bevorzugt, dass der wenigstens eine Hauptprozessor keinen Zugriff auf den wenigstens einen permanenten Software-Speicher hat, Zugriff auf den wenigstens einen Arbeitsspeicher für Instruktionen über den wenigstens einen Instruktionsbus hat und dieser auf die Zugriffsart „Lesen” beschränkt ist, Zugriff auf den wenigstens einen Arbeitsspeicher für Adressdaten über den wenigstens einen Operandenbus hat und dieser auf die Zugriffsart „Lesen” beschränkt ist, Zugriff auf die funktionsinternen Daten über den wenigstens einen Operandenbus hat und dieser in den Zugriffsarten „Schreiben” und/oder „Lesen” erfolgt, und Zugriff auf die Hauptprozessorzieldaten über den wenigstens einen Operandenbus hat und dieser in den Zugriffsarten „Schreiben” und/oder „Lesen” erfolgt, und keinen Zugriff auf die Ladeprozessorzieldaten des wenigstens einen Ladeprozessors hat.
-
Weiterhin ist es bevorzugt, dass der wenigstens eine Ladeprozessor Zugriff auf den wenigstens einen externen Software-Speicher hat und dieser auf die Zugriffsart „Lesen” beschränkt ist, und Zugriff auf den wenigstens einen permanenten Software-Speicher hat und dieser in den Zugriffsarten „Schreiben” und/oder „Lesen” erfolgt, Zugriff auf den wenigstens einen Arbeitsspeicher für Instruktionen über den wenigstens einen Operandenbus hat und dieser auf die Zugriffsart „Schreiben” beschränkt ist, Zugriff auf den wenigstens einen Arbeitsspeicher für Instruktionen über den wenigstens einen Instruktionsbus hat und dieser auf die Zugriffsart „Lesen” beschränkt ist, Zugriff auf den wenigstens einen Arbeitsspeicher für die Ladeprozessorzieldaten, Adressdaten und funktionsinternen Daten über den wenigstens einen Operandenbus hat und dieser in den Zugriffsarten „Schreiben” und/oder „Lesen” erfolgt, und keinen Zugriff auf die Hauptprozessorzieldaten des wenigstens einen Hauptprozessors hat.
-
Um das Rechnersystem vor dem Einbringen von Schadsoftware durch Medien zu schützen ist es vorteilhaft vorgesehen, dass das Datenverarbeitungssystem einen Medienprozessor aufweist, der über wenigstens einen Instruktionsbus und wenigstens einen Operandenbus jeweils bidirektional mit wenigstens einem separaten Arbeitsspeicher für Mediendaten kommuniziert, wobei der Medienprozessor über einen eigenen permanenten Mediendatenspeicher verfügt mit dem er bidirektional kommuniziert, und wobei der Medienprozessor mit einer eigenen Ein-/Ausgabe-Hardware (Interface) verbunden ist. Durch den bidirektionalen Zugriff des Hauptprozessors über den Operandenbus auf die Mediendaten ist das Rechnersystem in der Lage von Medien verfügbar gemachte Software sicher auszuführen.
-
Unabhängig von der Größe des Rechnersystems ist das erfindungsgemäße Datenverarbeitungssystem anwendbar. Dabei ist es vorteilhaft, dass beim Vorhandensein von mehr als einem Hauptprozessor die Hauptprozessoren unabhängig voneinander einsetzbar sind, wobei jeder Hauptprozessor mit einem ihm fest zugeordneten Speicher für Hauptprozessorzieldaten kommuniziert, auf den die jeweils andern Hauptprozessoren keinen Zugriff haben, und wobei alle Hauptprozessoren über einen zusätzlichen gemeinsamen Arbeitsspeicher für gemeinsame Zieldaten zur kontrollierten Datenübergabe zwischen den Hauptprozessoren verfügen. Durch diese Anordnung kann zum Beispiel ein Rechnersystem mit „Rot-Schwarz-Trennung” realisiert werden.
-
Es kann aber auch bevorzugt sein, dass beim Vorhandensein von mehr als einem Hauptprozessor, die Hauptprozessoren unabhängig voneinander eingesetzt werden, wobei alle Hauptprozessoren über einen gemeinsamen Arbeitsspeicher für Hauptprozessorzieldaten mit den Zugriffsattributen „Schreiben” und „Lesen” verfügen. Der gemeinsame Arbeitsspeicher für gemeinsame Zieldaten zur kontrollierten Datenübergabe ist hierbei nicht vorhanden und wird durch einen gemeinsam genutzten Arbeitsspeicher für alle Hauptprozessorzieldaten ersetzt.
-
Weiterhin ist es vorteilhaft vorgesehen, dass ein externes Lesegerät für das Lesen von Software in den Arbeitsspeicher vorgesehen ist und dass das Lesegerät von dem wenigstens einen Ladeprozessor gesteuert wird, wobei der wenigstens eine Ladeprozessor mit dem externen Lesegerät für Software eine Schnittstelle bildet, die physisch so eingerichtet ist, dass herkömmliche Lesegeräte für Datenträger damit nicht betrieben werden können, so dass ein unbeabsichtigtes Laden von Software verhindert wird. Ein externes Lesegerät kann zum Beispiel bei Organisationen, in denen gleiche Rechnerausstattung in Hinsicht auf Software gefordert ist, wünschenswert sein.
-
Weiterhin ist es bevorzugt, dass der Ladeprozessor in einem externen Ladegerät für das Laden von Software in den Arbeitsspeicher angeordnet ist. Diese Anordnung erlaubt das Übertragen von Software vom Ladegerät direkt auf den Arbeitsspeicher für Software nach dem Speicherdirektzugriffsverfahren (Direct Memory Access, DMA) oder ähnlichen Verfahren. Dies ist zum Beispiel vorteilhaft für Rechnersysteme mit geringer Anzahl von Softwareladevorgängen, bei denen nur zu diesem Zweck das externe Ladegerät mit dem Rechnersystem verbunden wird.
-
In dem erfindungsgemäßen Datenverarbeitungssystem kann es bevorzugt sein, dass die Datenkategorien funktionsinterne Daten (13) und Ladeprozessorzieldaten (15) dem selben physikalischen Arbeitsspeicher zugeordnet sind.
-
Es ist vorteilhafterweise ein Computerprogramm vorgesehen, das Ausgaben von Programmgenerierungswerkzeugen umsetzt, wobei die Umsetzung so erfolgt, dass die Datenkategorien geschaffen und als Datensegmente erzeugt werden, die von den erfindungsgemäßen Datenverarbeitungssystemen verarbeitbar sind.
-
Weiterhin ist ein Computerprogramm, das auf der von-Neumann-Architektur oder der Harvard-Architektur ausführbare Programme umsetzt, bevorzugt vorgesehen, wobei die Umsetzung so erfolgt, dass die Datenkategorien geschaffen und als Datensegmente erzeugt werden, die von den erfindungsgemäßen Datenverarbeitungssystemen verarbeitbar sind.
-
Bevorzugte Ausführungsformen der Erfindung werden nachfolgend anhand der Zeichnungen näher erläutert. In den Zeichnungen sind die gleichen Funktionselemente mit den gleichen Bezugszeichen versehen.
-
Es zeigen:
-
1: ein Blockschaltbild einer Von-Neumann-Hardwarearchitektur,
-
2: ein Blockschaltbild einer erfindungsgemäßen Anordnung mit getrenntem internen Ladeprozessor,
-
3: ein Blockschaltbild der erfindungsgemäßen Anordnung mit zusätzlichem Medienprozessor,
-
4: ein Blockschaltbild einer erfindungsgemäßen Anordnung mit externem Lesegerät für Software,
-
5: ein Blockschaltbild einer erfindungsgemäßen Anordnung mit externem Ladegerät,
-
6: ein Blockschaltbild einer erfindungsgemäßen Anordnung mit zwei voneinander unabhängigen Hauptprozessoren, wobei jeder Hauptprozessor mit einem ihm fest zugeordneten Speicher für Hauptprozessorzieldaten kommuniziert und beide Hauptprozessoren Daten über einen gemeinsamen Arbeitsspeicher austauschen, sowie
-
7: ein Blockschaltbild einer erfindungsgemäßen Anordnung mit zwei voneinander unabhängigen Hauptprozessoren, wobei die Hauptprozessoren über einen gemeinsamen Arbeitsspeicher für Hauptprozessorzieldaten verfügen.
-
1 zeigt den Stand der Technik in Form eines Blockschaltbildes. Die dargestellte Von-Neumann-Hardwarearchitektur besteht aus einem Hauptprozessor 1, einem Arbeitsspeicher 2, einem permanenten Datenspeicher 3, einer Ein-/Ausgabe-Hardware 4 und einem Bussystem 50. Bei dem Bussystem 50 wird unterschieden zwischen Instruktionsbus 60, der die Instruktionen übermittelt und Operandenbus 70, der die Operanden übermittelt. Der Hauptprozessor 1 kommuniziert mit dem Arbeitsspeicher 2 über das Bussystem 50 bidirektional. Weiterhin hat der Hauptprozessor 1 bidirektionalen Zugang zum permanenten Datenspeicher 3.
-
In der 2 ist eine Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems gezeigt. Neben einem Hauptprozessor 1, der bidirektional mit einer Ein-/Ausgabe-Hardware 4 und einem permanenten Datenspeicher 3 kommuniziert, liegt ein zweiter Prozessor, der Ladeprozessor 8 vor. Der Ladeprozessor 8 kommuniziert bidirektional mit einem eigenen permanenten Speicher 9 zum Speichern von Software und einem eigenen externen Software-Speicher 10. Beide Prozessoren stehen über jeweils ein Bussystem 50, 51 in Verbindung mit einem Arbeitsspeicher 2. Die Bussysteme 50, 51 umfassen jeweils einen Instruktionsbus 60, 61 und einen Operandenbus 70, 71 die den jeweiligen Prozessor 1, 8 mit dem Arbeitsspeicher 2 verbinden. Der Arbeitsspeicher 2 ist in fünf physische Arbeitsspeichereinheiten aufgeteilt. In diesen werden folgende Datenkategorien gespeichert: Instruktionen 11, Adressdaten 12, funktionsinterne Daten 13, Zieldaten für den Hauptprozessor 14 und Zieldaten für den Ladeprozessor 15. Der Hauptprozessor 1 und der Ladeprozessor 8 haben entsprechend den Datenkategorien unterschiedliche Zugriffsrechte auf die Arbeitsspeichereinheiten. Im Folgenden wird die Busstruktur 50, 51 mit den Definitionen der Datenkategorien und der Zugriffsrechte näher beschrieben.
-
Die erste Datenkategorie ist die der Instruktionen 11. Instruktionen 11 sind die von den Prozessoren auszuführenden kleinsten Softwareteile. Sie sind für alle darauf angewiesenen Prozessoren über ihren Instruktionsbus 60, 61 ausschließlich lesend zugreifbar. Allein der Ladeprozessor 8 darf über seinen Operandenbus 71 schreibend auf Instruktionen 11 zugreifen, das ist eine Voraussetzung für das Laden von Software. Instruktionen 11 werden im Rahmen der Generierung von Software unter Qualitäts- und Konfigurations-Kontrolle erzeugt und geladen.
-
Eine weitere Datenkategorie ist die der Adressdaten 12. Adressdaten 12 dienen dazu, Werte mit den Adressen der zugehörigen Software-Funktionen zu verknüpfen. Sie sind für alle darauf angewiesenen Prozessoren 1 über ihren Operandenbus 70 ausschließlich lesend zugreifbar. Allein der Ladeprozessor 8 darf über seinen Operandenbus 71 schreibend auf Adressdaten 12 zugreifen, das ist eine Voraussetzung für das Laden von Software. Adressdaten 12 werden im Rahmen der Generierung von Software unter Qualitäts- und Konfigurations-Kontrolle erzeugt und geladen.
-
Eine weitere Datenkategorie sind die funktionsinternen Daten 13. Funktionsinterne Daten 13 sind Teil der Software, die dem kontrollierten Funktionsablauf dienen. Sie sind für alle darauf angewiesenen Prozessoren 1, 8 über ihren Operandenbus 70, 71 schreibend und lesend zugreifbar. Funktionsinterne Daten 13 werden im Rahmen der Generierung von Software unter Qualitäts- und Konfigurations-Kontrolle erzeugt und geladen.
-
Eine weitere Kategorie sind die Zieldaten für den Hauptprozessor 14. Diese Daten gehören nicht zur Programmfunktion, aber Programmfunktionen wirken auf diese Daten. Sie sind für den Hauptprozessor 1 und zusätzliche Prozessoren über ihren Operandenbus 70 schreibend und lesend zugreifbar. Der Ladeprozessor 8 hat keinen Zugriff – weder schreibend noch lesend – auf diese Zieldaten 14. Dadurch wird verhindert, dass Zieldaten 14 auf diesem Weg in Speicherbereiche gelangen können, die Instruktionen 11 oder Adressdaten 12 vorbehalten sind.
-
Weiterhin weist der Arbeitsspeicher 2 die Kategorie Zieldaten für den Ladeprozessor 15 auf. Zieldaten für den Ladeprozessor 15 sind Daten, auf die Softwarefunktionen wirken, die aber nicht zur Softwarefunktion gehören. Sie sind nur für den Ladeprozessor 8 über seinen Operandenbus 71 schreibend und lesend zugreifbar. Der Hauptprozessor 1 hat keinen Zugriff auf diese Zieldaten 15.
-
Der Ladeprozessor 8 ist hierarchisch dem Hauptprozessor 1 untergeordnet. Sein Instruktionsbus 61 und Operandenbus 71 sind von denen des Hauptprozessors 60, 70 getrennt und unabhängig. Er hat folgende Aufgaben zu erfüllen:
- – Kopieren von Software von externen Software-Speicher 10 zum Permanentspeicher für Software 9,
- – Kopieren von Software vom permanenten Software-Speicher 9 in die Arbeitsspeicher 2 für Instruktionen 11, funktionsinterne Daten 13 und Adressdaten 12
- – und gegebenenfalls vorliegende Softwarestrukturen umwandeln um Kompatibilität mit der Systemarchitektur zu erreichen.
-
Die Systemumgebung bestimmt die Leistungsfähigkeit des Ladeprozessors 8. Für Systeme mit geringer Anzahl von Software-Ladevorgängen, z. B. eingebettete Systeme, darf der Ladeprozessor 8 eine externe Komponente sein, die nur zu diesem Zweck mit dem System verbunden wird.
-
Der Hauptprozessor 1 erfüllt alle anderen vorgesehenen Aufgaben des Rechners. Sein Instruktionsbus 60 und Operandenbus 70 sind von denen des Ladeprozessors 61, 71 getrennt und unabhängig. Er hat keinen Zugriff auf den Permanentspeicher für Software 9. Sein Zugriff auf den Arbeitsspeicher 2 für Instruktionen 11 ist auf Lesen über den Instruktionsbus 60 beschränkt. Sein Zugriff auf den Arbeitsspeicher 2 für Adressdaten 12 ist beschränkt auf das Lesen über den Operandenbus 70. Sein Zugriff auf den Arbeitsspeicher 2 für seine Zieldaten 14 erfolgt schreibend und lesend über den Operandenbus 70. Er hat keinen Zugriff auf die Zieldaten des Ladeprozessors 15.
-
Der Hauptprozessor 1 ist nicht in den beabsichtigten Transfer von auszuführender Software involviert. Aber die Software, welche als Gegenstand von Software-Entwicklungsmaßnahmen aktuell bearbeitet wird, gehört der Kategorie Zieldaten an.
-
Während der Ausführung von Ladefunktionen sind konkurrierende Zugriffe von Ladeprozessor 8 und Hauptprozessor 1 auf den Arbeitsspeicher 2 für funktionsinterne Daten 13 und Adressdaten 12 möglich. Auf Grund der strikten Trennung von Datenkategorien kann diese Situation nicht zur Verbreitung von Schadsoftware führen. Außerdem wird der Zugriff auf dieselben Daten bereits durch die Zuweisung von verschiedenen Adressen bei der Softwaregenerierung und dem Ladevorgang verhindert.
-
Im Permanentspeicher für Zieldaten 3 werden ausschließlich Daten der Kategorie Zieldaten für den Hauptprozessor 1 gespeichert. Nur der Hauptprozessor 1 hat Zugriff zu diesen Daten. Der Ladeprozessor 8 hat keinen Zugriff zu diesen Daten, weder schreibend noch lesend.
-
Im Permanentspeicher für Software 9 werden Daten der Kategorien Instruktionen 11, Adressdaten 12 und funktionsinterne Daten 13 gespeichert. Auf diese Daten kann der Ladeprozessor 8 schreibend und lesend zugreifen. Kein anderer Prozessor darf auf diesen Speicher zugreifen. Zugriff zu diesem Speicher 9 erfolgt ausschließlich im Zusammenhang mit dem Installieren und Initialisieren von Software. Der permanente Software-Speicher 9 wird ausschließlich zum Zweck der Softwareinstallation beschrieben.
-
Die in 3 gezeigte Ausführungsform zeigt als Hauptbestandteil die Elemente und deren Anordnung gemäß 2. Zusätzlich verfügt der Aufbau über einen permanenten Mediendatenspeicher 16, einen Mediendaten-Arbeitsspeicher 17, ein Mediendaten-Bussystem mit Instruktions- und Operandenbus 62, 72, eine eigene Ein-/Ausgabe-Hardware 40 und einen Medienprozessor 18 für die Bearbeitung von Daten und zur Ausführung von Software, die über Medien verfügbar gemacht werden. Der Medienprozessor 18 kommuniziert bidirektional mit der Ein-/Ausgabe-Hardware 40 und hat keinen Zugriff zu den anderen vorliegenden Speichern 2, 3, 9. Zu dem Mediendaten-Arbeitsspeicher 17 haben nur der den Medien zugeordnete Medienprozessor 18 und der Hauptprozessor 1 Zugriff. Weiterhin hat zu dem permanenten Mediendatenspeicher 16 nur der den Medien zugeordnete Medienprozessor 18 Zugriff. Das Rechnersystem ist somit in der Lage mittels eines separaten Medienprozessors 18, die von den Medien verfügbar gemachte Software sicher auszuführen.
-
4 zeigt im Wesentlichen das Blockschaltbild aus 2, wobei der externe Softwarespeicher durch ein externes Lesegerät für Software 19 ersetzt wurde. Die Schnittstelle zu dem externen Lesegerät für Softwareträger 19 ist physisch so eingerichtet, dass herkömmliche Lesegeräte für Datenträger damit nicht betrieben werden können, so dass ein unbeabsichtigtes Laden von Software verhindert wird. Anwendungen dieser Erfindung liegen zum Beispiel bei eingebetteten Systemen und bei Organisationen, in denen gleiche Rechnerausstattung in Hinsicht auf Software gefordert ist.
-
Die Ausführungsform der 5 zeigt neben einem Hauptprozessor 1, der bidirektional mit einer Ein-/Ausgabe- Hardware 4 und einem permanenten Datenspeicher 3 kommuniziert, einen Arbeitsspeicher 2, der über ein Bussystem 50 in Verbindung mit dem Hauptprozessor 1 steht und ein externes Ladegerät 20 für das Laden von Software. Das Bussystem 50 umfasst zur Kommunikation zwischen Hauptprozessor 1 und Arbeitsspeicher 2 einen Instruktionsbus 60 und einen Operandenbus 70. Der Arbeitsspeicher 2 ist in vier physische Arbeitsspeichereinheiten aufgeteilt. In diesen werden folgende Datenkategorien gespeichert: Instruktionen 11, Adressdaten 12, funktionsinterne Daten 13 und Zieldaten für den Hauptprozessor 14. Der Hauptprozessor 1 und das externe Ladegerät 20 haben entsprechend den Datenkategorien unterschiedliche Zugriffsrechte auf die Arbeitsspeichereinheiten. Das externe Ladegerät 20 greift ausschließlich auf die Instruktionen 11, Adressdaten 12 und funktionsinterne Daten 13 schreibend zu. Der Hauptprozessor 1 liest über den Instruktionsbus 60 die Instruktionen 11 und über den Operandenbus 70 die Adressdaten 12 des Arbeitsspeicher 2. Weiterhin kann der Hauptprozessor 1 sowohl schreibend als auch lesend auf die funktionsinternen Daten 13 und die Zieldaten des Hauptprozessors 14 des Arbeitsspeichers 2 zugreifen.
-
Das externe Ladegerät 20 stellt einen separaten Prozessor für das Laden von Software dar, wobei das so ausgerüstete Rechnersystem keinen eigenen Ladeprozessor und ihm zugeordneten Speicher aufweist. Damit verfügt es nicht über die Möglichkeit, Software unmittelbar von externen Software-Speichern zu lesen, oder Software während des Betriebes zu konfigurieren. Zum Laden von Software ist bei diesem Ausführungsbeispiel ein externes Gerät erforderlich, welches über eine entsprechende physisch unverwechselbarer Schnittstelle verfügt. Anwendungen dieses Ausführungsbeispiels liegen zum Beispiel bei Systemen, deren Software während des Betriebes nicht konfiguriert wird.
-
Die Ausführungsform dargestellt in 6 zeigt einen ersten und einen zweiten Hauptprozessor 1, 21, die unabhängig voneinander fungieren und die jeweils einen festen Satz an zugeordneten Funktionselementen aufweisen. Der jeweilige Hauptprozessor 1, 21 ist bidirektional mit der jeweiligen Ein-/Ausgabe-Hardware 4, 22 und dem jeweiligen permanenten Datenspeicher 3, 23 verbunden. Weiterhin verfügt jeder Hauptprozessor 1, 21 über ein Bussystem bestehend aus Instruktions- und Operandenbus 60, 63, 70, 73 über dem er mit dem jeweiligen Arbeitsspeicher 2, 24 kommuniziert. Der jeweilige Arbeitsspeicher 2, 24 ist in vier physisch voneinander getrennte Arbeitsspeicherbereiche aufgeteilt. Abhängig von den Zugriffsrechten des jeweiligen Hauptprozessors 1, 21 und eines vorhandenen Ladeprozessors 8 sind die Bereiche in Instruktionen 11, 25, Adressdaten 12, 26, funktionsinterne Daten 13, 27 und Zieldaten des jeweiligen Hauptprozessors 14, 28 aufgeteilt. Der bidirektional mit einem externen Software-Speicher 10 und einem permanenten Software-Speicher 9 kommunizierende Ladeprozessor 8 weist ein Bussystem bestehend aus Instruktions- und Operandenbus 61, 71 auf. Weiterhin ist ein zusätzlicher Arbeitsspeicher für die Zieldaten des Ladeprozessors 15 und für Übergabedaten 29 vorgesehen. Im Folgenden werden die Zugriffsrechte der Funktionselemente näher erläutert. Der jeweilige Hauptprozessor 1, 21 greift über den jeweiligen Instruktionsbus 60, 63 auf die Instruktionen 11, 25 und über den Operandenbus 70, 73 auf die Adressdaten 12, 26 des jeweiligen Arbeitsspeichers 2, 24 lesend zu. Sowohl lesend als auch schreibend erfolgt der Zugriff des jeweiligen Hauptprozessors 1, 21 auf die funktionsinternen Daten 13, 27 und die Zieldaten des jeweiligen Hauptprozessors 14, 28 im jeweiligen Arbeitsspeicher 2, 24. Bidirektional greifen beide Hauptprozessoren 1, 21 über ihren jeweiligen Operandenbus 70, 73 auf den Arbeitsspeicher für Übergabedaten 29 zu. Auf die Instruktionen 11 des ersten Hauptprozessors 1 und die Instruktionen 25 des zweiten Hauptprozessors 21 wird vom Ladeprozessor 8 schreibend über den Operandenbus 71 zugegriffen. Die Instruktionen 11 des ersten Hauptprozessors 1 werden vom Instruktionsbus 61 des Ladeprozessors 8 gelesen. Über den Operandenbus 71 des Ladeprozessors 8 wird bidirektional auf die Adressdaten 12, 26 und die funktionsinternen Daten 13, 27 der jeweiligen Hauptprozessor 1, 21 und Zieldaten des Ladeprozessors 15 zugegriffen. Diese Zwei-Prozessoren-Version erlaubt zum Beispiel die sichere Datenübergabe zwischen Netzwerken mit unterschiedlicher Sicherheitseinstufung. Die Rechnersysteme haben dabei üblicherweise Zugriff auf beide Netze und zwar von Software, die für diesen Zweck besonders strukturiert und aufwändig getestet sind, um unbeabsichtigte oder unerlaubte Datentransfers zu unterbinden. Die gleiche Problematik taucht bei der Ansteuerung von Effektoren auf Basis von Eingaben verschiedener Sensoren auf. Hierbei geht es neben der möglichen und durch Anwendung des erfindungsgemäßen Datenverarbeitungssystems vermeidbaren „Infektion” mit Schadsoftware unter den Teilsystemen darum, Situationen mit Hardware-Mitteln zu unterbinden, die den Ansteuerungsalgorithmus stören können. Diese Negativeffekte lassen sich durch die Zuordnung der Sensor- und Effektor-Funktionen zu jeweils einem separatem Prozessor vermeiden, wobei die jeweiligen Prozessoren eindeutig definierte und in der Hardware realisierte Zugriffe auf jeweils eigene und auf gemeinsame Daten haben.
-
7 zeigt eine weitere Ausführungsform, deren Blockschaltbild im Wesentlichen der 6 entspricht. Der Unterschied liegt darin, dass der Arbeitsspeicher für Übergabedaten wegfällt und nur ein gemeinsamer Arbeitsspeicher für Zieldaten der Hauptprozessoren 30 vorliegt, auf den beide Hauptprozessoren 1, 21 bidirektional über ihren jeweiligen Operandenbus 70, 73 zugreifen. In dieser Ausführungsform liegt eine typische Mehrprozessoranwendung vor.
-
In einer weiteren hier nicht dargestellten Ausführungsform können die Zieldaten für den Ladeprozessor innerhalb der funktionsinternen Daten abgebildet werden; in diesem Fall kann auf die Datenkategorie Zieldaten des Ladeprozessors verzichtet werden.
-
Das erfindungsgemäße Datenverarbeitungssystem verhindert durch die Anordnung der Funktionselemente (Prozessoren, Arbeitsspeicher, Permanentspeicher), dass jegliche Schadsoftware durch Prozessoren ausgeführt werden kann. Zu Grunde liegt das Prinzip der strikten Trennung von Datenkategorien und Prozessoraufgaben. Das erfindungsgemäße Datenverarbeitungssystem ist prinzipiell auf alle Größenordnungen anwendbar, von Großrechnern und Multiprozessorsystemen bis hinab zu mobilen Geräten. Es ist selbstverständlich, dass das erfindungsgemäße Datenverarbeitungssystem nicht auf die beschriebenen Rechnerkomponenten sowie Anzahl der Prozessoren beschränkt ist. Abhängig vom gegebenen Systemdesign sind die Anzahl der Prozessoren und die Auslegung von zusätzlichen Rechnerkomponenten (z. B. Grafikprozessoren) frei wählbar.
-
Bedingt durch die separate Behandlung der Datenkategorien ist es erforderlich, die Software für das erfindungsgemäße Datenverarbeitungssystem entsprechend anzupassen.
-
Bezugszeichenliste
-
- 1
- Hauptprozessor
- 2
- Arbeitsspeicher
- 3
- permanenter Datenspeicher des Hauptprozessors
- 4
- Ein-/Ausgabe-Hardware des Hauptprozessors
- 8
- Ladeprozessor
- 9
- permanenter Software-Speicher
- 10
- externer Software-Speicher
- 11
- Instruktionen
- 12
- Adressdaten
- 13
- funktionsinterne Daten
- 14
- Zieldaten Hauptprozessor
- 15
- Zieldaten Ladeprozessor
- 16
- permanenter Mediendatenspeicher
- 17
- Mediendaten-Arbeitsspeicher
- 18
- Medienprozessor
- 19
- Externes Lesegerät
- 20
- Externes Ladegerät
- 21
- Zweiter Hauptprozessor
- 22
- Ein-/Ausgabe-Hardware des zweiten Hauptprozessors
- 23
- permanenter Datenspeicher des zweiten Hauptprozessors
- 24
- Arbeitsspeicher des zweiten Hauptprozessors
- 25
- Instruktionen des zweiten Arbeitsspeichers
- 26
- Adressdaten des zweiten Arbeitsspeichers
- 27
- funktionsinterne Daten des zweiten Arbeitsspeichers
- 28
- Zieldaten Hauptprozessor des zweiten Arbeitsspeichers
- 29
- Arbeitsspeicher für Übergabedaten
- 30
- Zieldaten Hauptprozessoren des ersten und zweiten Hauptprozessors
- 40
- Ein-/Ausgabe-Hardware des Medienprozessors
- 50
- Bussystem des Hauptprozessors
- 51
- Bussystem des Ladeprozessors
- 60
- Instruktionsbus des Hauptprozessors
- 70
- Operandenbus des Hauptprozessors
- 61
- Instruktionsbus des Ladeprozessors
- 71
- Operandenbus des Ladeprozessors
- 62
- Instruktionsbus des Medienprozessors
- 72
- Operandenbus des Medienprozessors
- 63
- Instruktionsbus des zweiten Hauptprozessors
- 73
- Operandenbus des zweiten Hauptprozessors