Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MALWARE-PROOF DATA PROCESSING SYSTEM
Document Type and Number:
WIPO Patent Application WO/2014/166753
Kind Code:
A1
Abstract:
The invention relates to a data processing system, wherein there is a strict separation of processor tasks and data categories, wherein processor tasks are separated into software loading and initialization (loading processor (8)) and file editing (main processor (1)) and data categories are separated into address data (12), instructions (11), function-internal data (13), target data of the main processor (14), and target data of the loading processor (15). Thus, there is protection against malware regardless of the transfer medium or the type of malware, including against future malware, and without a loss of performance of the computer system.

Inventors:
BECKER FRIEDHELM (DE)
Application Number:
PCT/EP2014/056190
Publication Date:
October 16, 2014
Filing Date:
March 27, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BECKER FRIEDHELM (DE)
International Classes:
G06F13/12; G06F15/00; G06F21/00
Foreign References:
DE19950255A12000-06-15
EP2428910A22012-03-14
US6112263A2000-08-29
DE19950255B42004-05-13
US7000092B22006-02-14
US8117642B22012-02-14
Attorney, Agent or Firm:
LENZING GERBER STUTE PARTNERSCHAFTSGESELLSCHAFT VON PATENTANWÄLTEN (DE)
Download PDF:
Claims:
Patentansprüche

1. Datenverarbeitungssystem aufweisend wenigstens einen Hauptprozessor (1), wenigstens einen permanenten Datenspeicher (3) und wenigstens einen Arbeitsspeicher (2), wobei der wenigstens eine Hauptprozessor (1) mit wenigstens einer Ein-/Ausgabe-Hardware (Interface) (4) verbunden ist, und wobei der wenigstens eine Hauptprozessor (1) mit dem

wenigstens einen Arbeitsspeicher (2) über wenigstens einen

Instruktionsbus (60) und über wenigstens einen Operandenbus (70) kommuniziert und getrennt davon bidirektional mit dem wenigstens einen permanenten Datenspeicher (3) kommuniziert, dadurch

gekennzeichnet, dass wenigstens ein Ladeprozessor (8) vorgesehen ist, der bidirektional mit wenigstens einem permanenten Software- Speicher (9) und wenigstens einem externen Software-Speicher (10) kommuniziert und der mit dem wenigstens einen Arbeitsspeicher (2) über wenigstens einen Instruktionsbus (61) und über wenigstens einen

Operandenbus (71) getrennt und unabhängig von dem wenigstens einen Hauptprozessor (1) kommuniziert, wobei die Kommunikation zwischen dem wenigstens einen

Hauptprozessor (1) und dem wenigstens einen Arbeitsspeicher (2) über den wenigstens einen Instruktionsbus (60) und den wenigstens einen Operandenbus (70) erfolgt, die Kommunikation zwischen dem wenigstens einen Ladeprozessor (8) und dem wenigstens einen Arbeitsspeicher (2) über den wenigstens einen Instruktionsbus (61) und den wenigstens einen Operandenbus (71) erfolgt, sowohl die Kommunikation zwischen dem wenigstens einem

Hauptprozessor (1) und der wenigstens einen Ein-/Ausgabe-Hardware (4) sowie dem wenigstens einen permanenten Datenspeicher (3) als auch die Kommunikation zwischen dem wenigstens einen Ladeprozessor (8) und dem wenigstens einen externen Software-Speicher (10) sowie dem wenigstens einen permanenten Software-Speicher (9) über

Zugriffsattribute kontrolliert sind .

2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass Daten in dem wenigstens einen Arbeitsspeicher (2) 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 (1) und Ladeprozessor-Zugriffsattribute für den wenigstens einen Ladeprozessor (8), und wobei Daten gleicher

Datenkategorien gleiche Hauptprozessor-Zugriffsattribute für den Zugriff durch den wenigstens einen Hauptprozessor (1) und gleiche

Ladeprozessor-Zugriffsattribute für den Zugriff durch den wenigstens einen Ladeprozessor (8) aufweisen.

3. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, dass für jede Datenkategorie wenigstens ein separater Arbeitsspeicher (11, 12, 13, 14, 15) vorgesehen ist.

4. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass folgende Datenkategorien vorgesehen sind :

- Adressdaten (12),

- Instruktionen (11),

- funktionsinterne Daten (13),

- Zieldaten des wenigstens einen Hauptprozessors

(Hauptprozessorzieldaten) (14),

- Zieldaten des wenigstens einen Ladeprozessors

(Ladeprozessorzieldaten) (15).

5. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der wenigstens ein Hauptprozessor (1)

- keinen Zugriff auf den wenigstens einen permanenten Software- Speicher (9) hat,

- Zugriff auf den wenigstens einen Arbeitsspeicher für Instruktionen (11) über den wenigstens einen Instruktionsbus (60) hat und dieser auf die Zugriffsart„Lesen" beschränkt ist,

- Zugriff auf den wenigstens einen Arbeitsspeicher für Adressdaten (12) über den wenigstens einen Operandenbus (70) hat und dieser auf die Zugriffsart„Lesen" beschränkt ist,

- Zugriff auf die funktionsinternen Daten (13) über den wenigstens einen

Operandenbus (70) hat und dieser in den Zugriffsarten„Schreiben" und/oder„Lesen" erfolgt, und

- Zugriff auf die Hauptprozessorzieldaten (14) über den wenigstens einen

Operandenbus (70) hat und dieser in den Zugriffsarten„Schreiben" und/oder„Lesen" erfolgt, und

- keinen Zugriff auf die Ladeprozessorzieldaten (15) des wenigstens einen Ladeprozessors (8) hat.

6. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der wenigstens eine Ladeprozessor (8)

- Zugriff auf den wenigstens einen externen Software-Speicher (10) hat und dieser auf die Zugriffsart„Lesen" beschränkt ist, und

- Zugriff auf den wenigstens einen permanenten Software-Speicher (9) hat und dieser in den Zugriffsarten„Schreiben" und/oder„Lesen" erfolgt,

- Zugriff auf den wenigstens einen Arbeitsspeicher für Instruktionen (11) über den wenigstens einen Operandenbus (71) hat und dieser auf die Zugriffsart„Schreiben" beschränkt ist,

- Zugriff auf den wenigstens einen Arbeitsspeicher für Instruktionen (11) über den wenigstens einen Instruktionsbus (61) hat und dieser auf die Zugriffsart„Lesen" beschränkt ist, - Zugriff auf den wenigstens einen Arbeitsspeicher für die

Ladeprozessorzieldaten (15), Adressdaten (12) und funktionsinternen Daten (13) über den wenigstens einen Operandenbus (71) hat und dieser in den Zugriffsarten„Schreiben" und/oder„Lesen" erfolgt, und

- keinen Zugriff auf die Hauptprozessorzieldaten (14) des wenigstens einen Hauptprozessors (1) hat.

7. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem einen Medienprozessor (18) aufweist, der über wenigstens einen

Instruktionsbus (62) und wenigstens einen Operandenbus (72) jeweils bidirektional mit wenigstens einem separaten Arbeitsspeicher für

Mediendaten (17) kommuniziert, wobei der Medienprozessor (18) über einen eigenen permanenten Mediendatenspeicher (16) verfügt mit dem er bidirektional kommuniziert, und wobei der Medienprozessor (18) mit einer eigenen Ein-/Ausgabe Hardware (Interface) (40) verbunden ist.

8. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass beim Vorhandensein von mehr als einem Hauptprozessor (1) die Hauptprozessoren (1, 21) unabhängig voneinander einsetzbar sind, wobei jeder Hauptprozessor (1, 21) mit einem ihm fest zugeordneten Speicher für Hauptprozessorzieldaten (14, 28) kommuniziert, auf den die jeweils andern Hauptprozessoren (21, 1) keinen Zugriff haben, und wobei alle Hauptprozessoren (1, 21) über einen zusätzlichen gemeinsamen Arbeitsspeicher für gemeinsame Zieldaten (29) zur kontrollierten Datenübergabe zwischen den

Hauptprozessoren (1, 21) verfügen.

9. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche 1 bis 7, dadurch gekennzeichnet, dass beim Vorhandensein von mehr als einem Hauptprozessor (1), die Hauptprozessoren (1, 21) unabhängig voneinander eingesetzt werden, wobei alle Hauptprozessoren (1, 21) über einen gemeinsamen Arbeitsspeicher für Hauptprozessorzieldaten (30) mit den Zugriffsattributen„Schreiben" und„Lesen" verfügen .

10. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein externes Lesegerät (19) für das Lesen von Software in den Arbeitsspeicher (2) vorgesehen ist und dass das Lesegerät (19) von dem wenigstens einen Ladeprozessor (8) gesteuert wird, wobei der wenigstens eine Ladeprozessor (8) mit dem externen Lesegerät für Software (19) 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.

11. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche 1 bis 9, dadurch gekennzeichnet, dass der Ladeprozessor (8) in einem externen Ladegerät (20) für das Laden von Software in den

Arbeitsspeicher (2) angeordnet ist.

12. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche 1 bis 10, dadurch gekennzeichnet, dass die Datenkategorien

funktionsinterne Daten (13) und Ladeprozessorzieldaten (15) dem selben physikalischen Arbeitsspeicher zugeordnet sind .

13. Computerprogramm, das Ausgaben von

Programmgenerierungswerkzeugen umsetzt, dadurch gekennzeichnet, dass die Umsetzung so erfolgt, dass die Datenkategorien geschaffen und als Datensegmente erzeugt werden, die von Datenverarbeitungssystemen nach Anspruch 1 bis 12 verarbeitbar sind.

14. Computerprogramm, das auf der von-Neumann-Architektur und/oder der Harvard-Architektur ausführbare Programme umsetzt, dadurch

gekennzeichnet, dass die Umsetzung so erfolgt, dass die

Datenkategorien geschaffen und als Datensegmente erzeugt werden, die von Datenverarbeitungssystemen nach Anspruch 1 bis 12 verarbeitbar sind .

15. Externes Ladegerät für das Laden von Software in den Arbeitsspeicher für ein Datenverarbeitungssystem nach Anspruch 11.

16. Externes Lesegerät für das Lesen von Software durch den Ladeprozessor für ein Datenverarbeitungssystem nach Anspruch 10.

Description:
Schadsoftware-sicheres Datenverarbeitungssystem

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 allgegenwertig 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 :

Fig. 1 : ein Blockschaltbild einer Von-Neumann-Hardwarearchitektur,

Fig. 2 : ein Blockschaltbild einer erfindungsgemäßen Anordnung mit

getrenntem internen Ladeprozessor, Fig. 3 : ein Blockschaltbild der erfindungsgemäßen Anordnung mit zusätzlichem Medienprozessor,

Fig. 4: ein Blockschaltbild einer erfindungsgemäßen Anordnung mit

externem Lesegerät für Software,

Fig. 5 : ein Blockschaltbild einer erfindungsgemäßen Anordnung mit

externem Ladegerät,

Fig. 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

Fig. 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.

Fig. 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 Fig . 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 Figur 3 gezeigte Ausführungsform zeigt als Hauptbestandteil die

Elemente und deren Anordnung gemäß Figur 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.

Figur 4 zeigt im Wesentlichen das Blockschaltbild aus Figur 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 Figur 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 Figur 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.

Figur 7 zeigt eine weitere Ausführungsform, deren Blockschaltbild im

Wesentlichen der Figur 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. Bezugszeichen

Hauptprozessor

Arbeitsspeicher

permanenter Datenspeicher des Hauptprozessors

Ein-/Ausgabe-Hardware des Hauptprozessors

Ladeprozessor

permanenter Software-Speicher

externer Software-Speicher

Instruktionen

Adressdaten

funktionsinterne Daten

Zieldaten Hauptprozessor

Zieldaten Ladeprozessor

permanenter Mediendatenspeicher

Mediendaten-Arbeitsspeicher

Medienprozessor

Externes Lesegerät

Externes Ladegerät

Zweiter Hauptprozessor

Ein-/Ausgabe-Hardware des zweiten Hauptprozessors permanenter Datenspeicher des zweiten Hauptprozessors Arbeitsspeicher des zweiten Hauptprozessors

Instruktionen des zweiten Arbeitsspeichers

Adressdaten des zweiten Arbeitsspeichers

funktionsinterne Daten des zweiten Arbeitsspeichers Zieldaten Hauptprozessor des zweiten Arbeitsspeichers Arbeitsspeicher für Übergabedaten

Zieldaten Hauptprozessoren des ersten und zweiten Hauptp Ein-/Ausgabe-Hardware des Medienprozessors

Bussystem des Hauptprozessors

Bussystem des Ladeprozessors Instruktionsbus des Hauptprozessors

Operandenbus des Hauptprozessors

Instruktionsbus des Ladeprozessors

Operandenbus des Ladeprozessors

Instruktionsbus des Medienprozessors Operandenbus des Medienprozessors

Instruktionsbus des zweiten Hauptprozessors Operandenbus des zweiten Hauptprozessors