-
Die Erfindung betrifft eine Datenverarbeitungsvorrichtung mit mehreren Prozessoreinrichtungen und mehreren Schnittstelleneinrichtungen, insbesondere eine Datenverarbeitungsvorrichtung zur Verwendung in der Avionik.
-
Avionik bezeichnet üblicherweise die Gesamtheit der elektrischen und elektronischen Geräte, die an Bord eines Luftfahrzeugs verwendet werden. Der Entwicklung moderner Mikroelektronik folgend, schreitet auch die Integration von immer mehr Funktionalität in kleinere, leistungsfähigere und effizientere Avionik-Rechner-Systeme zunehmend voran. Das Besondere bei Avionik-Rechner-Systemen ist, dass sie in der Regel langwierigen und aufwendigen Zulassungsverfahren unterzogen werden müssen. Nur mit bestandener Zulassung können entsprechende Komponenten in der Luftfahrt, z.B. in Flugzeugen oder Avionikgeräten, eingesetzt werden. Dies führt dazu, dass Veränderungen in den Komponenten nur sehr langsam und zögerlich vorgenommen werden können.
-
Bei in der Avionik üblichen Rechner-Systemen werden meist Prozessoren bereitgestellt, auf denen einzelne Anwendungen laufen können. Die Prozessoren sind mit Schnittstellen gekoppelt, die ihrerseits wieder mit anderen Geräten, zum Beispiel Messgeräten oder Sensoren gekoppelt sein können.
-
Aufgrund der oben erwähnten aufwendigen Zulassungsverfahren kann es in der Praxis dazu kommen, dass insbesondere die Schnittstellen hinsichtlich ihres Aufbaus oder hinsichtlich ihrer Definitionen über Jahrzehnte unverändert genutzt werden müssen. Jede Veränderung einer Schnittstelle oder gar eine Neudefinition einer Schnittstelle wäre enorm aufwendig und wird daher nur dann sinnvoll sein, wenn der Nutzen den hohen Aufwand überwiegt.
-
Auf bestehenden Flugplattformen werden häufig im Zuge von Modernisierungsprogrammen mehrere bestehende Subsysteme durch einzelne hochintegrierte Geräte ersetzt. Die bestehende Funktionalität kann dabei mit zusätzlichen Fähigkeiten erweitert werden.
-
1 zeigt schematisch die typische Entwicklung bei Avioniksystemen. Im linken Bildteil ist eine traditionelle Verbund-Architektur 1 dargestellt, die im Zuge der Modernisierung zu einer hochintegrierten Avionik 2 weiterentwickelt werden soll.
-
Die traditionelle Verbund-Architektur 1 zeichnet sich dadurch aus, dass eine Vielzahl von einzelnen Rechner-Systemen 3 vorhanden ist, wobei jedes Rechner-System 3 einen oder mehrere Prozessoren 4 sowie mit den Prozessoren 4 verbundene Schnittstellen 5 aufweist. Die Schnittstellen 5 können ihrerseits wieder mit geeigneten Verbindern 6, zum Beispiel Gerätesteckern oder -buchsen gekoppelt sein, um die externen Geräte anschließen zu können.
-
Im Zuge der Modernisierung sollen derartige komplexe und vielfältige Systeme weiter integriert werden, wie im rechten Bildteil von 1 dargestellt. Hierbei wird angestrebt, moderne Mehrkernprozessoren 7 in der Avionik auch für sicherheitskritische Anwendungen uneingeschränkt nutzbar zu machen.
-
Im Ergebnis entsteht eine hochparallele Rechnerarchitektur, auf der eine Vielzahl verschiedenster Applikationen (Software) in mehreren Kontexten gleichzeitig zur Ausführung gebracht werden können. Die Applikationen bzw. die Kontexte sollen sich dabei eine definierte Menge physischer Ressourcen (Hardware) teilen. Zu diesen physischen Ressourcen gehören insbesondere auch üblicherweise eine Vielzahl von Eingabe- und Ausgabeschnittstellen (I/O-Schnittstellen) des Rechner-Subsystems.
-
Ein Problem dabei ist es, eine möglichst flexible I/O-Architektur zu erreichen, mit der die Integration (langjährig) etablierter, sowie aber auch neuer oder gar zukünftiger Schnittstellen-Standards ermöglicht werden kann. Dies sollte möglichst vereinheitlicht und für ein zertifiziertes Mehrkern-Rechner-Subsystem effizient nutzbar gemacht werden.
-
In der Avionik besteht bei bekannten Systemen eine feste Zuordnung von physikalischen Schnittstellen zu einer einzelnen Software-Applikation, einem Prozessorkern bzw. einem Prozessor. Das schränkt die Skalierbarkeit und Flexibilität bestehender Subsysteme stark ein. Wenn mehr als eine Schnittstelle eines bestimmten Typs mittels zum Beispiel einer anwendungsspezifischen integrierten Schaltung (IC) implementiert werden soll, erfolgt eine Zuordnung der integrierten Schaltung und der damit verbundenen Funktionalität mit einem einzelnen Prozessorkern sowie dem zugehörigen Treiber- und Applikationssoftware-Kontext. Eine gewisse Flexibilität kann dabei mit Hilfe einer 1/0-Server-Software erreicht werden. Dabei werden aber vor allem in Hinsicht auf die komplexen Austauschbeziehungen zwischen additiver Latenz, hoher Komplexität der Ablaufplanung, multiplen Daten-Kopiervorgängen sowie dem Rechenzeit-Bedarf keine zufriedenstellenden Lösungen erreicht. Diese Ansätze sind somit häufig sehr komplex oder sehr latenzbehaftet.
-
Der Datenaustausch zwischen den Schnittstellen (I/O-Hardware) und den Softwareschichten erfolgt üblicherweise dadurch, dass die jeweilige Softwareanwendung Daten anfragt. In der Folge dieser Anfrage werden Daten entweder direkt über Peripherie-Schnittstellen (zum Beispiel PCI-Express) aus Speichern entnommen, die den Schnittstellen zugeordnet sind, oder in dem jeweiligen Speicher zum Versand bereitgestellt.
-
Häufig wird auch eine weitere dedizierte Hardware verwendet, um den Datentransport zwischen der Peripherie und dem Hauptspeicher zu organisieren und auf diese Weise die Software-Anwendung zu entlasten (zum Beispiel mit Hilfe eines Prozessor-DMA-Controllers).
-
2 zeigt ein abstraktes Beispiel für eine typische bekannte Realisierung eines Rechner-Systems in der Avionik mit mehreren Schnittstellen, die von Anwendungen (Softwareapplikationen) auf mehreren Prozessoren gemeinsam genutzt werden.
-
Im vorliegenden Beispiel sind drei Prozessoren 4 dargestellt, auf denen insgesamt fünf verschiedene Anwendungen laufen. Zur besseren Unterscheidbarkeit sind die Prozessoren mit den Bezugszeichen 4a, 4b und 4c gekennzeichnet. Die hier zur Erläuterung näher beschriebenen Schnittstellen 5 sind mit den Bezugszeichen 5a und 5b gekennzeichnet.
-
Die Schnittstellen 5 bzw. 5a, 5b sind mit nicht dargestellten externen Einrichtungen E koppelbar, zum Beispiel anderen Geräten, Sensoren, Relais, Ventilen, Elektromotoren etc.
-
In dem vorliegenden Beispiel werden Daten von der externen Einrichtung E über die Schnittstelle 5a zugeführt und von dort über eine Verbindung 8 an den Prozessor 4a übergeben. Insbesondere erfolgt der Datenfluss von der Schnittstelle 5a zu der Anwendung 2, die auf dem Prozessor 4a läuft. Die Anwendung 2 kontrolliert die Schnittstelle 5a und damit auch den Datenfluss.
-
Weiterhin teilt die Anwendung 2 die eingehenden Daten mit der ebenfalls auf dem Prozessor 4a laufenden Anwendung 1 sowie der Anwendung 3, die auf einem anderen Prozessor, nämlich dem Prozessor 4b läuft.
-
Die dabei entstehenden Datenflüsse sind durch Verbindungen 9a (zwischen Anwendung 2 und Anwendung 1) sowie 9b (zwischen Anwendung 2 und Anwendung 3) gekennzeichnet.
-
Mit den Datenflüssen sind jeweils auch Latenzen verbunden, die unterschiedliche Zeiträume umfassen können. Das Lesen von Daten von der Schnittstelle 5a durch die Anwendung 2 liegt typischerweise bei unter 1 ms. Dies gilt auch für das Kopieren der Daten von der Anwendung 2 zur Anwendung 1 über die Verbindung 9a innerhalb des Prozessors 4a.
-
Das Kopieren hingegen von dem Prozessor 4a zu dem Prozessor 4b, nämlich von der Anwendung 2 zur Anwendung 3 kann sehr viel zeitaufwendiger sein und typischerweise weniger als 40 ms betragen.
-
Ein anderer Datenfluss ist im rechten Bildteil von 2 dargestellt. Hier sollen Daten über die Schnittstelle 5b an eine externe Einrichtung E ausgegeben werden. Die Schnittstelle 5b wird über eine Verbindung 10 durch die Anwendung 4 kontrolliert. Da über die Schnittstelle 5b Daten der Anwendung 3 ausgegeben werden sollen, macht die Anwendung 4 auf dem Prozessor 4c die Schnittstelle 5b für die Anwendung 3 auf dem anderen Prozessor 4b zum Senden von Daten verfügbar. Hierzu besteht eine weitere Verbindung 11 zwischen der Anwendung 3 und der Anwendung 4.
-
Bei diesem Vorgang müssen somit erneut Daten zwischen zwei Prozessoren (hier Prozessoren 4b und 4c) kopiert werden, was zu Latenzzeiten von < 40 ms führen kann. Das Schreiben durch die Anwendung 4 (Software) in die Schnittstelle 5b liegt typischerweise bei < 1 ms.
-
Die hier genannten typischen Latenzzeiten können insbesondere durch den Software-Datentransfer, Kopiervorgänge und eine asynchrone Software-Ablaufplanung zwischen einzelnen Prozessoren entstehen. Die Latenzzeiten bzw. die ihnen zugrunde liegenden Vorgänge sind in 2 auch durch gestrichelte Pfeile gekennzeichnet.
-
Der Erfindung liegt die Aufgabe zugrunde, eine somit beschriebene Avionik-Datenverarbeitungsvorrichtung einerseits hinsichtlich ihrer Flexibilität und andererseits der Datenflussgeschwindigkeiten bzw. einer Verringerung der Latenzzeiten zu verbessern.
-
Die Aufgabe wird erfindungsgemäß gelöst durch eine Datenverarbeitungsvorrichtung mit den Merkmalen von Anspruch 1. Vorteilhafte Ausgestaltungen sind in den abhängigen Ansprüchen angegeben. Die erfindungsgemäße Datenverarbeitungsvorrichtung kann insbesondere vorteilhaft in Avionik-Rechnersystemen eingesetzt werden.
-
Es wird eine Datenverarbeitungsvorrichtung angegeben, mit mehreren Prozessoren, mehreren Schnittstellen, an die jeweils externe Einrichtungen anschließbar sind, und mit Verbindungen zwischen den Schnittstellen und den Prozessoren, über die Daten zwischen den Schnittstellen und den Prozessoren transportierbar sind, wobei in den Verbindungen wenigstens eine Datenverwaltungseinrichtung vorgesehen ist, zum Handhaben von Datenflüssen zwischen den Schnittstellen und den Prozessoren.
-
Bei der Datenverarbeitungsvorrichtung wird somit im Unterschied zu bekannten Datenverarbeitungsvorrichtungen in den Verbindungen zwischen den Schnittstellen und den Prozessoren zusätzlich eine Datenverwaltungseinrichtung vorgesehen, die die Datenflüsse handhaben soll. Dadurch werden insbesondere die Prozessoren und die darauf laufenden Software-Anwendungen von Datenhandhabungsaufgaben entlastet und die Effizienz gesteigert.
-
Die genannten externen Einrichtungen sind typischerweise Geräte, Sensoren, Motoren, Ventile, Schalter, Lichtelemente, Klimatisierungskomponenten etc., die z.B. in der Luftfahrt zum Einsatz kommen und die an die Schnittstellen anschließbar sind. Diese externen Einrichtungen sind somit nicht Teil der angegebenen Datenverarbeitungsvorrichtung. Vielmehr verläuft die Systemgrenze der beschriebenen Datenverarbeitungsvorrichtung derart, dass die anschließbaren externen Einrichtungen davon nicht erfasst sind.
-
Bei den Prozessoren handelt es sich um Prozessoreinrichtungen, die in an sich bekannter Weise aufgebaut sein können und insbesondere einen oder mehrere Hauptprozessoren bzw. Prozessorkerne (CPU), Steuer- bzw. Leitwerke, Rechenwerke, Register, Datenleitungen (Datenbusse), Caches und eine Speicherverwaltung (Memory Management Unit - MMU) aufweisen können. Der Begriff „Prozessor“ umfasst somit nicht alleine den eigentlichen Prozessor, sondern selbstverständlich auch mit dem Prozessor gekoppelte Speicherbereiche (zum Beispiel den Hauptspeicher), die für den Betrieb des Prozessors erforderlich sind.
-
Bei den Schnittstellen kann es sich um in vielfältiger Weise ausgestaltete Schnittstelleneinrichtungen handeln, die insbesondere als Hardware-Schnittstellen ausgebildet sind, um in der Luftfahrt vorgesehene Geräte mit einem oder mehreren Prozessoren zu koppeln. Entsprechend können sie z.B. als analoge oder digitale, parallele oder serielle Schnittstellen etc. ausgestaltet sein.
-
Die Schnittstellen können dementsprechend verschiedene unterschiedliche Schnittstellentypen umfassen, zum Beispiel diskrete Schnittstellen (28 V/GNDopen, 12 V, 5 V, TTL, PWM), analoge Schnittstellen (Strom, Spannung, Frequenz), serielle Schnittstellen, digitale Schnittstellen, etc. Die Schnittstellen können auch mehrere traditionelle diskrete (Analog, Digital), serielle (ARINC-429, RS-422, etc.), Bus- (MIL-STD-1553, CAN, STANAG-3910, etc.) sowie moderne Netzwerk-Schnittstellen (Ethernet, AFDX, Fibre Channel, etc.) einschließen.
-
Die genannten Verbindungen können einerseits zwischen Prozessoren und Schnittstellen und andererseits aber auch direkt zwischen den Prozessoren bestehen.
-
Z.B. können - wie oben in Zusammenhang mit 1 erläutert - bei einem Avionik-Rechnersystem mehrere Prozessoreinrichtungen vorgesehen sein, in denen Mehrkernprozessoren betrieben werden, auf denen Softwareapplikationen laufen, die übergreifend auf die Schnittstellen zugreifen müssen.
-
Die Datenverwaltungseinrichtung wird somit separat und zusätzlich zu den Schnittstellen und Prozessoren vorgesehen. Dadurch ist es möglich, dass die Schnittstellen und Prozessoren baulich nicht verändert werden müssen, was entsprechende Zulassungsverfahren vereinfachen und beschleunigen kann.
-
Das Handhaben von Datenflüssen umfasst insbesondere das Durchführen der damit üblicherweise verbundenen Maßnahmen wie Managen, Sortieren, Weiterleiten von eingehenden und ausgehenden Daten.
-
Je nach Komplexität der Datenverarbeitungsvorrichtung können auch mehrere Datenverwaltungseinrichtungen genutzt werden, die jeweils den Schnittstellen zugeordnet sind und die die Datenflüsse von und zu den Schnittstellen handhaben.
-
Die Schnittstellen können ausgebildet sein zum Empfangen von Daten von externen Einrichtungen, die an die Schnittstellen anschließbar sind, und/oder zum Senden von Daten an externe Einrichtungen, die an die Schnittstellen anschließbar sind. Die Schnittstellen können somit in üblicher Weise das Empfangen und Senden von Daten durchführen.
-
Wenigstens eine der Schnittstellen kann somit zum Empfang von Daten von einer an die Schnittstelle anschließbaren externen Einrichtung und wenigstens eine der Schnittstellen kann zum Senden von Daten an eine an die Schnittstelle anschließbare externe Einrichtung ausgebildet sein.
-
Die Datenverwaltungseinrichtung kann als Hardwarekomponente ausgebildet sein. Das bedeutet, dass die Datenverwaltung nicht durch Software und somit insbesondere nicht unter Nutzung der auf den Prozessoren laufenden Anwendungen erfolgt, sondern dass die Datenverwaltungseinrichtung einen eigenen Hardwarebestandteil darstellt. Insbesondere kann die Datenverwaltungseinrichtung als integrierte Schaltung (IC) ausgebildet sein.
-
Die Hardwarekomponente bzw. die integrierte Schaltung kann modular und/ oder logisch getrennt von den Prozessoren und den Schnittstellen ausgebildet sein. Die Hardwarekomponente kann somit baulich getrennt von den Prozessoren und den Schnittstellen ausgebildet sein und ein eigenes Bauelement darstellen, so dass die Prozessoren und die Schnittstellen baulich nicht verändert werden müssen, wodurch die Zulassungsverfahren erleichtert werden. Ebenso ist es möglich, dass z. B. die Hardwarekomponente auf einem System-on-Chip realisiert wird, bei dem alle Komponenten auf einem einzelnen Chip zusammen integriert sind, wobei aber eine logische Trennung der Hardwarekomponente von den anderen Komponenten (Prozessoren, Schnittstellen) gegeben ist.
-
Die Hardwarekomponente kann mit wenigstens einem Teil der Schnittstellen direkt verbunden sein. Auf diese Weise ist ein schneller Datenaustausch möglich.
-
Die Prozessoren können Speicherbereiche aufweisen, zum Speichern von Daten, wobei die Datenverwaltungseinrichtung ausgebildet sein kann, um Datenflüsse zu Speicherbereichen der Prozessoren zu handhaben. Insbesondere können dabei physikalische Speicherbereiche für Anwendungen definiert werden, die auf den Prozessoren laufen. Diese Speicherbereiche liegen üblicherweise im Hauptspeicher, wobei die dort gespeicherten Daten durch die jeweiligen Anwendungen nutzbar sind. Die Speicherbereiche können zudem direkt von der Datenverwaltungseinrichtung angesteuert werden, ohne Nutzung der jeweiligen Anwendungen. Dadurch werden die Anwendungen entlastet und Latenzzeiten erheblich reduziert. Die Datenverwaltungseinrichtung kann somit direkt in die physikalischen Speicherbereiche Daten schreiben oder Daten daraus auslesen.
-
Die Nutzung des Hauptspeichers (also der Prozessor-RAM) ist dabei besonders vorteilhaft. Z.B. kann ein Speicher auch über eine Schnittstelle als externe Einrichtung physisch zugeordnet sein. Er ist dann aber vom Prozessor nur mittels dieser Peripherieschnittstelle erreichbar, wodurch erhebliche Latenzen bewirkt werden können. Der Hauptspeicher jedoch ist vom Prozessor aus schnell und latenzarm zugreifbar, was bei einem Speicher, der einem externen Gerät zugeordnet ist, nicht der Fall ist.
-
Wenigstens eine der Prozessoreinrichtungen kann einen oder mehrere Prozessorkerne aufweisen. Ebenso ist es möglich, dass ein Rechner-System wenigstens eine oder mehrere Prozessoreinrichtungen aufweist.
-
Die Datenverarbeitungsvorrichtung kann in besonders vorteilhafter Weise bei Avionik-Rechnersystemen eingesetzt werden.
-
Die Datenverwaltungseinrichtung in Form der integrierten Schaltung (Hardware) übernimmt das Sortieren und Weiterleiten von eingehenden und ausgehenden Daten auf mehreren zugeordneten Avionik-I/O-Schnittstellen verschiedenen Typs vollständig autonom. Dies geschieht weitestgehend ohne ständigen Steuerungsaufwand und Datentransport durch die in den Prozessoren laufende Software.
-
Die über die Schnittstellen empfangenen Empfangs-Daten werden durch die Datenverwaltungseinrichtung direkt im Prozessor-Hauptspeicher mehreren voneinander unabhängigen Software-Anwendungen verfügbar gemacht. Daten, die von der Software nach außen, zu externen Einrichtungen übergeben werden sollen, werden durch die Datenverwaltungseinrichtung aus dem Prozessor-Hauptspeicher abgeholt. Der Datentransfer zwischen einer Schnittstelle und einem Prozessor-Hauptspeicher geschieht dabei ohne aktive Beteiligung einer auf dem Prozessor laufenden Software-Anwendung.
-
Durch eine geeignete Speicher-Zugriffsverwaltung (Prozessor- und Betriebssystemkonfiguration) wird eine konfliktfreie und sichere gemeinsame Nutzung der Datenverwaltungseinrichtung (der integrierten Schaltung), der implementierten Schnittstellen sowie aller Empfangs- und Sende-Daten durch mehrere Software-Anwendungen zur gleichen Zeit ermöglicht. Die Software-Anwendungen können dabei auf einem oder mehreren Prozessorkernen bzw. auch auf einem oder mehreren Mehrkern-Prozessoren parallel ausgeführt werden.
-
Unabhängig vom Schnittstellentyp kann der gleiche generische Ansatz für einen robusten und synchronisierten Datenaustausch zwischen der Hardware (der Datenverwaltungseinrichtung) und der Software (den auf den Prozessoren laufenden Anwendungen) zur Anwendung kommen. Dabei können Datenstrukturen verwendet werden, die Industriestandard-kompatibel sind. Dies betrifft zum Beispiel bekannte Systeme wie PCI-Express oder Rapid-I/O. Die Datenstrukturen können Ringpuffer nutzen, in Verbindung mit einem geeigneten Synchronisationsmodell (Produzent, Konsument, Zeiger) und einem Kommunikationsmodell (paketbasierte Speichertransfers, direkter Speicherzugriff (DMA)).
-
Aufgrund der Verwendung von im Wesentlichen Industriestandard-kompatiblen Komponenten ist der Aufwand für Zulassungsverfahren als Teil einer sicherheitskritischen Avionik überschaubar, ohne dass dabei Flexibilität und Effizienz eingeschränkt sind.
-
Mit Hilfe der Datenverarbeitungsvorrichtung ist eine Vereinheitlichung des Mechanismus der Ein- und Ausgabe von Daten unabhängig vom Typ der genutzten Schnittstelle möglich. Aufgrund der hardwaremäßigen Entlastung der Software-Anwendungen ist eine Steigerung der Effizienz in der Software-Ausführung möglich. Die Entlastung der Software von Eingabe- und Ausgabetätigkeiten führt zu einer Reduzierung der Interferenz in der Software-Ausführung, was einen erleichterten Nachweis des für Zulassungsfragen wichtigen Determinismus führt.
-
Die Datenverarbeitungsvorrichtung stellt ein robustes Modell dar, mit dem verschiedene Schnittstellen gleichzeitig gemeinsam durch verschiedene Anwendungen ohne additive Latenz genutzt werden können.
-
Die Vorrichtung ermöglicht eine sehr gute Skalierbarkeit von traditionellen Systemen mit einzelnen Prozessoren bis hin zu modernen Systemen mit einem oder mehreren Mehrkernprozessoren.
-
Diese und weitere Vorteile und Merkmale werden nachfolgend anhand eines Beispiels unter Zuhilfenahme der begleitenden Figuren erläutert. Es zeigen:
- 1 ein schematisches Beispiel für die Konsolidierung älterer Rechnersysteme auf neue Rechnerarchitekturen;
- 2 den prinzipiellen Aufbau einer Datenverarbeitungsvorrichtung nach dem Stand der Technik;
- 3 eine schematische Darstellung einer erfindungsgemäßen Datenverarbeitungsvorrichtung; und
- 4 eine Detaildarstellung der Speicherverwaltung.
-
3 zeigt den schematischen Aufbau einer erfindungsgemäßen Datenverarbeitungsvorrichtung, die z.B. Teil eines Rechner-Systems sein kann. Komponenten, die den bereits oben im Zusammenhang mit 2 zum Stand der Technik beschriebenen Komponenten ähneln oder mit diesen identisch sein können, werden mit gleichen Bezugszeichen gekennzeichnet.
-
So ist ersichtlich, dass bei der erfindungsgemäßen Datenverarbeitungsvorrichtung von 3 im Unterschied zu der Datenverarbeitungsvorrichtung von 2 wenigstens eine zusätzliche Datenverwaltungseinrichtung 20 in der Verbindung 8 zwischen den Schnittstellen 5 und den Prozessoren 4 vorgesehen ist. In dem in 3 gezeigten Beispiel sind zwei Datenverwaltungseinrichtungen 20 (HW I/O Manager - Hardware) eingesetzt. Andere Varianten können auch mit nur einer Datenverwaltungseinrichtung 20 oder mit mehreren Datenverwaltungseinrichtungen 20 ausgestattet sein.
-
Die Datenverwaltungseinrichtung 20 handhabt den Datenfluss zwischen den verschiedenen Schnittstelleneinrichtungen 5 und den Anwendungen, die auf den Prozessoren 4 laufen. Insbesondere ist die Datenverwaltungseinrichtung 20 hardwaremäßig realisiert, z.B. in Form einer integrierten Schaltung (HW I/O Manager).
-
Die Datenverwaltungseinrichtung 20 übernimmt die Schnittstellenverwaltung sowie den Datentransport, wodurch deutlich niedrigere Latenzzeiten möglich sind, wie später noch erläutert wird. Die deutlich niedrigeren Latenzzeiten beruhen hauptsächlich auf der Virtualisierung der Schnittstellen durch die Datenverwaltungseinrichtung, der direkten gemeinsamen Nutzung eines später noch erläuterten Prozessor-Hauptspeichers, sowie dem autonomen Sortieren und Weiterleiten von eingehenden und ausgehenden Daten durch die Datenverwaltungseinrichtung 20.
-
In dem in 3 gezeigten konkreten Beispiel empfängt die Datenverwaltungseinrichtung 20 Daten von der Schnittstelle 5a, die ihrerseits mit einer externen Einrichtung E verbunden ist, und schreibt sie direkt in die Hauptspeicherbereiche, die in dem Prozessor 4a durch die Anwendungen 1 und 2 genutzt werden. Im Unterschied zu dem aus dem Stand der Technik bekannten Beispiel von 2 ist es somit nicht erforderlich, dass - wie dort - eine Anwendung (in 2: Anwendung 2) Daten empfängt und für die Nutzung durch eine andere Anwendung (in 2: Anwendung 1) kopieren muss. Vielmehr erledigt die Datenverwaltungseinrichtung 20 das Zurverfügungstellen der Daten für beide Anwendungen 1 und 2 gleichzeitig.
-
Zudem werden die über die Schnittstelle 5a empfangenen Daten auch direkt in den Hauptspeicherbereich der Anwendung 3 geschrieben, so dass auch dort aufwendige Kopiervorgänge (in 2 Kopieren der Daten von Anwendung 2 zu Anwendung 3) entfallen.
-
Zu diesem Zweck sind feste physikalische Verbindungen, insbesondere für die Datenverwaltungseinrichtung 20 zu den jeweiligen Speicherbereichen definiert, die idealerweise im Betrieb auch unveränderlich bleiben. Die Datenverwaltungseinrichtung 20 „weiß“ somit genau, in welche Speicherbereiche der Prozessoren 4 welche Daten geschrieben werden müssen.
-
Die Datenflüsse erfolgen somit über die Verbindung 8 zwischen der (Empfangs-)Schnittstelle 5a und den Speicherbereichen der Anwendungen 1 und 2 für den Prozessor 4a und dem Speicherbereich der Anwendung 3 auf dem Prozessor 4b.
-
Für die Schreibvorgänge durch die Datenverwaltungseinrichtung 20 ergeben sich extrem kurze Latenzzeiten. Diese liegen typischerweise unter 5 µs. Zum Vergleich: bei den Lese- und Kopiervorgängen der Vorrichtung von 2 waren erheblich längere Latenzzeiten im Bereich von Millisekunden erforderlich. Die Latenzzeiten bzw. die ihnen zugrunde liegenden Vorgänge sind in 3 auch durch gestrichelte Pfeile gekennzeichnet.
-
Im rechten Bildteil von 3 ist ein Beispiel für das Senden von Daten aus den Anwendungen 3 und 4 erläutert. Hier greift die (in 3 im rechten Bildteil dargestellte) Datenverwaltungseinrichtung 20 direkt auf die Speicherbereiche der Anwendungen 3 und 4 zu und übergibt die dort gelesenen Daten direkt an die Schnittstelle 5b.
-
Der Datenfluss erfolgt somit über die Verbindung 10 von der Anwendung 3 im Prozessor 4b und der Anwendung 4 im Prozessor 4c über die Datenverwaltungseinrichtung 20 zu der (Sende-)Schnittstelle 5b.
-
Auch hier sind die anfallenden Latenzzeiten sehr kurz und liegen typischerweise unter 10 µs.
-
Darüber hinaus können die Prozessoren 4 untereinander über Verbindungen 11 in üblicher Weise verbunden sein.
-
Die in 3 gezeigten Prozessoren 4 können jeweils einen Prozessorkern („CPU“) sowie die zugehörige Speicherhierarchie und Speicherverwaltung aufweisen. Wenn die Prozessoren 4 Teil von Mehrkernprozessoren sind (vgl. z. B. die Mehrkernprozessoren 7 in 1), ist es auch möglich, dass sich die Prozessorkerne (CPU) die Speicherverwaltung mit anderen Prozessorkernen (CPU) teilen, die Teil des betreffenden Mehrkernprozessors sind. In diesem Zusammenhang sei mit Bezug auf 1 ergänzt, dass für die dort beispielhaft gezeigten Mehrkernprozessoren 7 jeweils vier Prozessorkerne (entsprechend „CPU“ in 3) dargestellt sind. Selbstverständlich können die Mehrkernprozessoren 7 auch anders aufgebaut sein.
-
Dementsprechend können bei dem Beispiel von 3 z.B. die Prozessoren 4a und 4b Teil eines ersten Mehrkernprozessors und der Prozessor 4c Teil eines anderen Mehrkernprozessors sein.
-
4 zeigt in größerem Detail ein Beispiel für eine andere Anwendung, um die Datenflüsse und Speicherzugriffe besser erläutern zu können.
-
Hierbei ist die Darstellung des eigentlichen Haupt-Prozessors 4 getrennt von einem dem Prozessor 4 zugeordneten Hauptspeicher 21. Bei den Darstellungen in den 2 und 3 wurde der jeweilige Hauptspeicher nicht separat dargestellt, sondern als Teil des Prozessors 4 (korrekter: Prozessoreinrichtung, bestehend aus den eigentlichen Prozessoren sowie erforderlichen weiteren Komponenten wie zum Beispiel Speicherbereichen etc.) dargestellt.
-
In dem Prozessor 4 laufen die Anwendungen 1 und 2, denen jeweils Speicherbereiche 22 (für Anwendung 1) und 23 (für Anwendung 2) zugeordnet sind. Die Verwaltung der Speicherbereiche 22, 23 erfolgt in bekannter Weise durch eine Speicherverwaltung 24.
-
Die Datenverwaltungseinrichtung 20 (HW I/O Manager) weist eine geeignete Konfiguration 25 auf, die es ihr ermöglicht, die jeweils definiert zugeordneten Schnittstellen 5 bzw. 5a, 5b und die damit verbundenen Datenflüsse zu handhaben. Insbesondere „weiß“ die Datenverwaltungseinrichtung 20, welche Daten von welcher Schnittstelle 5 in welche Speicherbereiche 22, 23 im Hauptspeicher 21 geschrieben werden müssen bzw. von dort ausgelesen und gesendet werden müssen.
-
Im in 4 gezeigten Beispiel werden die Empfangsdaten über die (Empfangs-)Schnittstelle 5a durch die Datenverwaltungseinrichtung 20 in die Speicherbereiche 22 (für Anwendung 1) und 23 (für Anwendung 2) geschrieben, wie auch bereits anhand von 3 erläutert. Die Anwendungen 1 und 2 haben ihrerseits direkten Zugriff auf die Speicherbereiche 22 und 23.
-
Auszugebende Daten werden in dem gezeigten Beispiel von der Anwendung 2 in den Speicherbereich 23 geschrieben und von dort durch die Datenverwaltungseinrichtung 20 ausgelesen und zu der Schnittstelle 5b geführt.
-
4 zeigt lediglich den Aufbau eines stark vereinfachten Systems. Bei komplexeren Systemen ist es z.B. möglich, dass sich mehrere Prozessorkerne („CPU“) eine gemeinsame Speicherverwaltung und einen gemeinsamen Hauptspeicher teilen (z.B. bei Mehrkernprozessoren). Die Datenverwaltungseinrichtung 20 kann ihrerseits mit mehreren Mehrkernprozessoren gekoppelt sein.