Verfahren und Vorrichtung zur Datenverarbeitung
Stand der Technik
Dual Core μC-Architekturen werden heute schon an verschiedenen Stellen eingesetzt oder ihr Einsatz ist geplant. Prinzipiell lassen sich dabei zwei Varianten unterscheiden.
Einsatz im Lockstep Modus: Dieser ist hauptsächlich für Anwendungen mit hohen Fehlererkennungsanforderungen, z. B. sicherheitsrelevante Anwendungen, gedacht. Beide Cores bearbeiten zeitgleich die gleiche Aufgabe. Eine Vergleichseinheit prüft, ob die beiden Ergebnisse gleich sind und leitet im „Gut"-Fall das Ergebnis weiter. Im Fehlerfall wird ein Fehlersignal erzeugt.
Einsatz in einem Performanzmodus: In diesem Fall arbeiten die beiden Cores weitgehend unabhängig voneinander. Insbesondere bearbeiten sie verschiedene Aufgaben zur gleichen Zeit und können damit eine höhere Rechenleistung darstellen. Dieses Konzept ist von verschiedenen Halbleiterherstellern angekündigt und eingesetzt und gilt als eines der wesentlichen Perfor- manzsteigerungsmittel der Zukunft.
Multi Core Architekturen werden in vielen wissenschaftlichen Publikationen, hauptsächlich ιn- ter dem Aspekt der Parallelisierbarkeit (Performanzgewinn) diskutiert.
Bei sinkenden Kosten für einzelne Cores ist es auch bei sehr kostenempfindlichen Anwendungen möglich, deutlich mehr als zwei Cores auf einem Prozessor zu integrieren.
Vorteile der Erfindung
Aufgabe der Erfindung ist es in einem Multiprozessorsystem die vorhandenen Ausführungseinheiten so zu verschalten, dass sowohl Fehlererkennungsaufgaben als auch auf Performanz ausgelegte Aufgaben ausgeführt werden können. Vorteilhaft ist in der vorliegenden Erfindung, dass auf dem gleichen Rechnersystem sowohl Aufgaben ausgeführt werden können die hohe Fehler-
erkennungseigenschaften des Rechnersystems fordern, als auch Aufgaben die hohe Performare- anforderungen stellen.
Mit fortschreitendem Technologieniveau wird der Aufwand für eine Verarbeitungseinheit im Vergleich zu einem Speicher immer geringer. Hne Bereitstellung von mehreren Cores ist deshalb technisch sinnvoll und wird auch schon in der Praxis genutzt, aber bisher insbesondere mit dem Wunsch nach höherer Performanz. Die hier vorgestellten Strukturen bieten mehrere fest verschaltete Konfigurationen, die je nach Erfordernis für verschiedene Aufgaben eingesetzt werden können.
Vorteilhaft ist eine Vorrichtung zur Datenverarbeitung mit wenigstens drei gleichen oder gleichartigen Ausführungseinheiten enthalten, dadurch gekennzeichnet, dass wenigstens ein Vergleichsmittel vorhanden ist und wenigstens zwei Ausführungseinheiten so gruppiert sind, dass die Ausgangssignale der wenigstens zwei Ausführungseinheiten mit dem wenigstens einen Vergleichsmittel verbunden sind..
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese aus den Ausgangssignalen der Ausführungseinheiten ein Ausgangssignal nach einer vorgebbaren Vorschrift bilden.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese abhängig von dem Vergleichsergebnis mindestens eine Fehlerinformation erzeugen
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese abhängig von dem Vergleichsergebnis mindestens ein Statussignal ausgeben.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese abhängig von dem Vergleichsergebnis mindestens ein Statussignal ausgeben und dieses Signal eine erste Kennung enthält.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese abhängig von dem Vergleichsergebnis mindestens ein Statussignal ausgeben und dieses Signal eine erste Kennung enthält und abhängig von dieser ersten Kennung über die weitere Verarbeitung der Ausgangssignale entschieden wird.
Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass Mittel vorhanden sind, die die zu bearbeitenden Datenverarbeitungsaufgaben abhängig von einer zweiten Kennung dieser Datenverarbeitungsaufgaben auf die enthaltenen Ausführungseinheiten oder Gruppen von Ausführungseinheiten verteilen.
Vorteilhaft ist ein Verfahren zur Datenverarbeitung in einer Vorrichtung mit wenigstens drei gleichen oder gleichartigen Ausführungseinheiten und wenigstens einem Vergleichsmittel beschrieben, dadurch gekennzeichnet, dass die Ausgangssignale von wenigstens zwei Ausführungseinheiten mittels Vergleichsmittel verglichen werden.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das wenigstens eine Vergleichsmittel aus den Ausgangssignalen der wenigstens zwei Ausführungseinheiten ein Ausgangssignal nach einer vorgebbaren Vorschrift bildet.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das wenigstens eine
Vergleichsmittel abhängig von dem Vergleichsergebnis der Ausgangssignale der wenigstens zwei Ausführungseinheiten mindestens eine Fehlerinformation erzeugt.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das wenigstens eine Vergleichsmittel abhängig von dem Vergleichsergebnis der Ausgangssignale der wenigstens zwei Ausfiihrungseinheiten mindestens ein Statussignal ausgibt.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das wenigstens eine Vergleichsmittel abhängig von dem Vergleichsergebnis der Ausgangssignale der wenigsten zwei Ausführungseinheiten mindestens ein Statussignal erzeugt und dieses Signal eine erste
Kennung enthält.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die erste Kennung des Statussignals abhängig von der Fehlerinformation des Vergleichsmittels gebildet wird oder diese enthält
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die erste Kennung des
Statussignals abhängig von der vorgebbaren Vorschrift zur Erzeugung der Ausgangssignale des wenigstens einen Vergleichsmittels gebildet wird oder diese enthält.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass das wenigstens eine Vergleichsmittel abhängig von dem Vergleichsergebnis der Ausgangssignale der wenigstens zwei Ausführungseinheiten mindestens ein Statussignal erzeugt und dieses Signal eine erste Kennung enthält und abhängig von dieser Kennung über die weitere Verarbeitung der Ausgangssignale entschieden wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die zu bearbeitenden
Datenverarbeitungsaufgaben abhängig von einer zweiten Kennung dieser Datenverarbeitungsaufgaben auf die wenigstens drei Ausführungseinheiten oder Gruppen von Ausführungseinheiten verteilt werden.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.
Figuren
Figur 1 zeigt ein Multiprozessorsystem mit drei Ausführungseinheiten
Figur 2 zeigt ein Multiprozessorsystem mit vier Ausführungseinheiten
Figur 3 zeigt ein Multiprozessorsystem mit vier Ausführungseinheiten
Figur 4 zeigt ein Multiprozessorsystem mit fünf Ausführungseinheiten
Beschreibung der Ausführungsbeispiele
Eine Ausfiihrungseinheit kann im Folgenden sowohl einen Prozessor/Core/CPU, als auch eine FPU (Floating Point Unit), einen DSP (Digitaler Signalprozessor), einen Coprozessor oder eine ALU (Arithmetic logical Unit) bezeichnen.
Die vorliegende Erfindung behandelt Multiprozessorsysteme mit mindestens drei Ausführungseinheiten. Dabei sind die Ausführungseinheiten so verschaltet, dass sowohl Aufgaben bearbeitet werden können die eine starke Fehlererkennung, eine Fehlertoleranz durch die ausführenden Hardwareeinheiten als auch Aufgaben die hauptsächlich Anforderungen an die Performanz std- len bzw. keine Fehlererkennung oder Fehlertoleranz erfordern. In diesem Multiprozessorsystem können die anstehenden Aufgaben, entsprechend ihren Anforderungen, dabei auf die verschiedenen Ausführungseinheiten verteilt werden. Die Verteilung auf die verschiedenen Ausführungseinheiten kann dabei statisch erfolgen als auch im Betrieb. Dazu kann den Aufgaben oder Betriebssystemobjekten eine Kennung mitgegeben werden die anzeigt welche Anforderung sie an die Fehlererkennung oder Fehlertolerierung stellen. In diesem Fall kann dann einBetriebs- System die Aufgaben auf die jeweils zur Verfügung stehenden Ausführungseinheiten verteilen.
In Figur 1 eine Ausführungsform eines Multiprozessorsystem B201 mit drei Ausführungseinheiten Bl 10, Bl 20 und B 140 dargestellt, wobei BIlO und B 120 in einem Vergleichsmodus arbeiten und ihre Ausgänge Bl I l und B121 in einem Vergleicher B130 miteinander verglichen werden. Der Ausgang B 135 ist das Ausgangssignal des Vergleichers, auf das im Falle eines gültigen Vergleichs eines der beiden Signale Bl I l bzw. B 121 geschaltet ist. Im Falle einer erkannten Ungleichheit zwischen Bl I l und B121 wird der Ausgang B135 gesperrt, deaktiviert oder inaktiv geschaltet. Zusätzlich kann ein ein- oder mehrwertiges Statussignal B210 ausgegeben werden. Im Folgenden auch für die weiteren Ausführungsbeispiele wird immer von einem mehrwertigen Statussignal gesprochen, dies beinhaltet auch den Fall, dass das Statussignal einwertig sein kann. Die Ausführungseinheit B 140 liefert das Ausgangssignal B 141 ohne Vergleich und ohne eine sonstige Prüfung auf Gültigkeit.
Das Multiprozessorsystem ist damit in der Lage, je nach Verteilung der Aufgaben, Task oder Prozesse auf die Eingangssignale B 119 oder B 149 und damit auf die angeschlossenen Ausführungseinheiten die entsprechenden Ausgangssignale B210 bzw. B141 in einer redundanten oder einer nichtredundanten Art und Weise zu generieren. Die Zuteilung erfolgt dabei in der beschriebenen Art und Weise statisch oder dynamisch.
In der Figur 2 ist eine Ausfiihrungsform eines Multiprozessorsystem C202 mit 4 Ausführungseinheiten Cl 10, C120, C140 und C150 dargestellt. Zwei Aufgaben, Tasks oder Prozesse können mit diesem Multiprozessorsystem gleichzeitig bearbeitet werden, die Verarbeitung der Eingangssignale C129 zu den Ausgangssignalen C135, und von C139 zu C165. Die Erzeugung des Signals Cl 35 erfolgt analog dem Signal B 135 dargestellt in Figur 1 bei einem gültigen Vergleich von Cl 11 und C 121. Das mehrwertige Statussignal C220 zeigt eine Abweichung dieser beiden Signale an. Der zweite Teil des Multiprozessorsystems ist analog aufgebaut mit den Eingangssignalen C139 und den Ausgangssignalen C141 und C151 der zwei Ausführungseinheiten C 140 und C 150. Die Vergleichseinheit Cl 60 liefert nur im Falle von Gleichheit der Signale C141 und C151 ein gültiges Ausgangssignal C165. Der Status wird durch das mehrwertige Signal C230 angezeigt. In dieser Struktur C202 ist die Verarbeitung aller Aufgaben gleichwertig, weil sowohl die Ausführungseinheiten Cl 10 und C 120 als auch die Ausführungseinheiten C 140 und C 150 den gleichen Grad von Fehlererkennung besitzen.
In der Figur 3 ist eine weitere Ausführungsform eines Multiprozessorsystem D203 mit 4 Ausführungseinheiten Dl 10, Dl 20, D 140 und Dl 50 gezeigt, das gleichzeitig nur eine Verarbeitung von den an dem Eingangssignalen D 109 zur Verarbeitung anstehenden Aufgaben, Tasks oder Prozessen zu dem Ausgangsignal Dl 36 vornimmt. Dazu werden in der Vergleichseinheit D131 die Signale D111, D121, D141 und Dl 51 miteinander verglichen. Dabei kann ein einfacher Vergleich der Ausgangssignale durchgeführt werden oder mittels eines vorgebbaren Algorithmus. So kann es sich dabei um einen Mehrheitsentscheid also Voting handeln , es kann ein Mittelwert zwischen den Signalen gebildet werden oder es kann eine vorgebare Abweichung zwischen den Signalen toleriert werden. Dieser durch den vorgebaren Algorithmus gewonnener Ausgangswert wird dann auf Dl 36 ausgegeben. D240 bezeichnet dabei ein mehrwertiges Sta- tussignal, das nicht nur einen Fehler, sondern auch die Art einer Abweichung anzeigen kann, wie zum Beispiel die Zahl der gleichen Signale oder den Grad der Abweichung. Kann durch den vorgegebenen Algorithmus kein im Sinne des Algorithmus korrektes Ausgangssignal ausgegeben werden, so kann des ebenfalls über das mehrwertige Statussignal D240 ausgegeben werden. Das Ausgangssignal kann dann deaktiviert, unterbrochen oder ignoriert werden.
In Figur 4 ist schließlich eine Ausführungsform eines Multiprozessorsystem E204 mit 5 Ausführungseinheiten ElOO, El 10, E 120, E 140 und El 50 gezeigt. Davon sind 3 Ausführungseinheiten ElOO, El 10 und E120 zu einem Vergleich des Eingangssignal E169 fest verschaltet. Der Vergleichsalgorithmus für die Eingangssignale ElOl, El I l und El 21 ist dabei für den Verglei-
cher E132 vorgegeben. Das Ergebnis wird auf dem Ausgangssignale E137 ausgegeben und dazu ein mehrwertiges Statussignale auf E250 ausgegeben. Die Ausführungseinheiten E 140 und El 50 verarbeiten parallel dazu jeweils die Eingangssignale E149 bzw. El 59 und erzeugen damit die Ausgangssignale E141 bzw. E151 ohne Vergleich.