-
Die Erfindung betrifft ein Mehr-Kern-Prozessorsystem, das eingerichtet ist mit jedem der Kerne eine andere Anwendung auszuführen, umfassend eine für alle Kerne gemeinsame Peripherie-Einheit, die wenigstens einen Register-Satz umfasst, über den eine Kommunikation zwischen einer auf den Kernen laufenden Anwendungen und wenigstens einer funktionellen Einheit durchführbar ist. Ein Mehrkern-Prozessorsystem weist dabei wenigstens zwei separate Prozessorkerne auf.
-
Prozessorsysteme dieser Art sind allgemein im Stand der Technik bekannt. Die Prozessorkerne eines solchen Systems können dabei alle auf demselben Chip realisiert sein, dies ist jedoch für die Erfindung nicht zwingend. Es kann beispielsweise auch vorgesehen sein, dass die verschiedenen Anwendungen solche mit verschiedenen Sicherheitsanforderungen sind. Anwendungen mit speziellen, insbesondere jeweils verschiedenen Sicherheitsanforderungen können z.B. solche im Bereich der Raumfahrt, der Luftfahrt, im Kraftfahrzeugbereich, im Banken- und Versicherungswesen u.ä. sein.
-
Nach dem bisherigen Stand der Technik teilen sich alle auf den Kernen laufenden Anwendungen eine Peripherieeinheit, welche bislang einen einzigen Registersatz, also eine Menge von Registern aufweist, über welche jede der Anwendungen eine Kommunikation mit einer funktionellen Einheit durchführt. Eine solche funktionelle Einheit kann selbst Teil des Prozessorsystems sein, z.B. von der Peripherie-Einheit, aber auch extern zu diesem angeordnet sein. Eine funktionelle Einheit ist eine solche, die eingerichtet ist, eine vorbestimmte Funktion durchzuführen, z.B. die aus einer Anwendung im Rahmen einer Datentransaktion erhaltenen Daten weiterzuverarbeiten, oder auch Daten an eine Anwendung von der funktionellen Einheit zur Verfügung zu stellen. Eine solche Einheit kann im einfachsten Fall eine Software-Anwendung sein, die auf einer Datenverarbeitungsanlage läuft. Eine solche Einheit kann auch ein Gerät sein, z.B. ein Drucker oder eine Kommunikationseinheit.
-
Üblicherweise ist sicherzustellen, dass sich die verschiedenen Anwendungen, obwohl Sie auf demselben Prozessorsystem ablaufen nicht gegenseitig beeinflussen, selbst wenn sie Daten über dieselbe Peripherie-Einheit und bislang über denselben Registersatz mit mehreren Registern übertragen.
-
Um dies sicherzustellen ist bislang vorgesehen den Registersatz auf verschiedene separate Speicherbereiche abzubilden, bzw. in der üblichen Terminologie zu mappen. Jede Anwendung eines Kerns erhält sodann Zugriff nur auf einen der Speicherbereiche auf den der Registersatz abgebildet ist. Trotz dieser Abbildung des Registersatzes in verschiedene Speicherbereiche erfolgt die Kommunikation der Daten jeder Anwendung faktisch über denselben und einzigen Registersatz. Es muss somit auf Softwareebene sichergestellt werden, dass sich Zugriffe einer Anwendung auf den gemappten bzw. abgebildeten Registersatz nicht überschneiden, um eine Beeinflussung der Daten durch nicht autorisierte Anwendungen auszuschließen. Dafür wird üblicherweise eine Überwachungseinheit im Prozessorsystem vorgesehen, welche die Zugriffe der Anwendungen auf den Registersatz koordiniert.
-
Diese bisherige Sicherstellung des Ausschlusses einer gegenseitigen Beeinflussung genügt höheren Sicherheitsanforderungen hingegen nicht, da über ein und denselben Speicherbereich der Register des Registersatzes Daten verschiedener Sicherheitsstufen übertragen werden. Da keine echte räumliche Trennung der Daten verschiedener Anwendungen vorliegt kann eine Manipulationsmöglichkeit oder Interferenz grundsätzlich nicht ausgeschlossen werden.
-
Es ist somit eine Aufgabe der Erfindung ein Prozessorsystem der eingangs genannten Art so weiterzubilden, dass eine gegenseitige Beeinflussung der Daten verschiedener Anwendungen, die auf verschiedenen Kernen unabhängig voneinander ablaufen, mit höherer Sicherheit vermieden wird.
-
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, dass jedem der mehreren Kerne ein eigener Register-Satz in der Peripherie-Einheit zugeordnet ist, mit welchem ausschließlich nur die Kommunikation der Anwendung des zugeordneten Kerns mit der wenigstens einen funktionellen Einheit durchführbar ist.
-
Hierdurch wird sichergestellt, dass bereits auf Hardware-Ebene eine physikalische Trennung der Register erreicht wird, über die die Daten zwischen Anwendungen und wenigstens einer funktionellen Einheit transferiert werden. Für die Register jedes Registersatzes gilt dabei, dass nur die Anwendung desjenigen Kerns, der dem Registersatz zugeordnet ist, Daten an diese Register schreiben oder von diesen Registern lesen kann. Es besteht somit keine Möglichkeit mehr, dass eine Anwendung z.B. beim Schreiben von Daten an eine funktionelle Einheit über die Peripherieeinheit und deren Registersätze solche Daten überschreibt, die von einer anderen Einheit an dieselbe oder auch eine andere funktionelle Einheit geschrieben oder von dieser gelesen hat.
-
Im Unterschied zum Stand der Technik bildet jeder Registersatz durch seine Menge von Registern ein für den zugeordneten Kern und dessen laufender Anwendung alleinig verwendetes Kommunikationsinterface. Jeder Kern hat somit sein eigenes Kommunikationsinterface, das durch den zugeordneten Registersatz gebildet wird.
-
Bevorzugt sieht die Erfindung vor, dass jeder einem Kern zugeordnete Register-Satz räumlich in einem anderen Speicherbereich des Prozessorsystems, insbesondere von dessen Peripherie-Einheit angeordnet ist. Z.B. können die Register-Sätze über einen Offset im Speicherbereich beabstandet sein. Dieser Offset kann z.B. der Speichergröße /-länge eines Registersatzes entsprechen, so dass die Registersätze ohne Speicherlücke aneinander angrenzen können.
-
Weiter bevorzugt kann die Erfindung vorsehen, dass die in den Register-Sätzen korrespondierend angeordneten Register aller Sätze gleiche Funktion haben. Eine solche Funktion kann z.B. das reine Speichern der zwischen Anwendung und funktioneller Einheit zu übertragenden Daten sein oder auch ein Statusparameter der Kommunikation, z.B. ein sogenanntes Flag. Allgemein gilt somit, dass das Register an der Position N in jedem Registersatz bei dieser Ausführung dieselbe Funktion aufweist. Dabei wird somit mit jedem Registersatz insgesamt dieselbe Funktionalität zwischen Anwendung eines bestimmten Kerns und der funktionellen Einheit vermittelt, wie z.B. ein Druckprozess oder eine sonstige Datenverarbeitung.
-
Alle Anwendungen können somit z.B. mittels desselben vereinbarten Protokolls auf die Funktionalität der funktionellen Einheit zugreifen, machen dies jedoch jeweils über den eigenen Satz von Registern, der dem Kern zugeordnet ist, auf dem die jeweilige Anwendung läuft.
-
Bevorzugt sieht die Erfindung vor, dass über jeden Register-Satz aller Register-Sätze die Kommunikation mit derselben, also einer einzigen gemeinsam genutzten funktionellen Einheit eingerichtet ist. Sofern in dieser Ausführung in einem Prozessorsystem verschiedene funktionelle Einheiten zum Einsatz kommen, z.B. Drucker, Massenspeicher, Kommunikationsgerät, kann es die Erfindung weiter vorsehen, dass jeder funktionellen Einheit eine eigene Gruppe von Registersätzen zugewiesen ist und innerhalb einer Gruppe jeder Registersatz die vorbenannten Eigenschaften hat, also einem bestimmten Kern und/oder dessen Anwendung zugeordnet ist, sowie bevorzugt alle korrespondierend angeordneten Register der Registersätze gleiche Funktion haben. Es kann also mehrere funktionelle Einheiten geben, wobei aber jede über die benannte Gruppe von Registersätzen von allen Kernen/Anwendungen gemeinsam genutzt wird. Je Gruppe hat eine Anzahl von Registersätzen, die der Anzahl von Kernen entspricht, die mit der funktionellen Einheit dieser Gruppe kommunizieren.
-
Die Erfindung kann für die vorgenannten Ausführungen vorsehen, dass das Prozessorsystem wenigstens eine Verwaltungseinheit umfasst, mittels der Daten einer Anwendung eines jeweiligen Kerns in Abhängigkeit des Kerns dem diesem Kern zugeordneten Registersatz zugeleitet oder von diesem bezogen werden. Die Verwaltungseinheit kann eine Konfigurationsquelle bereitstellen, um die Registersätze jeweils einem der Kerne, bzw. den darauf laufenden Anwendungen, insbesondere Anwendungen mit verschiedenen Sicherheitsanforderungen zuzuordnen.
-
So wird über wenigstens eine solche Verwaltungseinheit sichergestellt, dass die Daten zwischen einer Anwendung und der funktionellen Einheit immer über den richtigen Registersatz geleitet werden, insbesondere geroutet werden.
-
Eine Verwaltungseinheit kann bevorzugt eine Routing-Tabelle umfassen, in der die Zuordnung zwischen Kern und Registersatz gespeichert ist. Mittels einer solchen Tabelle können Interrupts zwischen den mehreren Kernen und der Peripherie-Einheit über den jeweils zugeordneten Registersatz verarbeitet werden.
-
Eine solche Verwaltungseinheit kann auch in mehrere Einheiten untergliedert sein.
-
Die Erfindung kann eine erste Verwaltungseinheit aufweisen, die eingerichtet ist einer Datentransaktion zwischen einer Anwendung eines Kerns und der funktionellen Einheit eine den Kern identifizierende Quellenangabe hinzuzufügen. Unter der Datentransaktion wird dabei z.B. die Summe aller Daten verstanden, die zwischen der Anwendung und der funktionellen Einheit ausgetauscht werden. Die Quellenangabe wird bevorzugt zusammen mit den Daten über den Datenbus der Prozessoreinheit kommuniziert und kann so zur korrekten Weiterleitung an den zugeordneten Registersatz dienen.
-
Die Erfindung kann weiterhin vorsehen, dass das Prozessorsystem eine zweite Verwaltungseinheit aufweist, die eingerichtet ist, die Daten einer Datentransaktion in Abhängigkeit der Quellenangabe dem Registersatz zuzuteilen oder von diesem zu beziehen, der dem Kern zugeordnet ist, welcher durch die Quellenangabe identifiziert ist. Z.B. kann in Abhängigkeit der Quellenangabe ein Offset berechnet werden, der zur Startadresse des Speicherplatzes zu addieren ist, ab dem die Registersätze im Speicher der Peripherieeinheit hintereinanderliegend angeordnet sind. So wird durch den berechneten Offset sodann der richtige Registersatz adressiert.
-
Die zweite Verwaltungseinheit kann dafür z.B. von Datenbus die Quellenangabe lesen, die mit den Daten übermittelt wird, hieraus den Adressoffset bestimmen, und die mit der Startadresse und dem Adressoffset bestimmte konkrete Adresse des zugeordneten Registersatzes auf den Adressbus legen, damit die Daten den korrekt adressierten Registersatz erreichen.
-
Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der 1 beschrieben.
-
Die Figur visualisiert insgesamt symbolisch ein Mehrkern-Prozessorsystem, wobei hier beispielhaft 4 Prozessorkerne 1a, 1b, 1c und 1d über einen Bus 6 mit der Peripherie-Einheit 2 kommuniziert. Das System kann mehr aber auch weniger Kerne umfassen. Dieser Bus 6 kann einen Datenbus und einen Adressbus gleichzeitig symbolisieren.
-
Die Peripherieeinheit 2 umfasst mehrere Registersätze 3a, 3b, 3c. Hier sind zur Vereinfachung drei Registersätze 3a, 3b, 3c dargestellt, es wird jedoch zu jedem Kern einen eigenen Registersatz geben. Die Anzahl von Kernen und Registersätzen ist somit gleich. Jeder Registersatz 3a, 3b, 3c ist somit jeweils genau einem Kern 1a, 1b, 1c, 1d zugeordnet, z.B. der Registersatz 3a dem Kern 1a, der Registersatz 3b den Kern 1b, der Registersatz 3c dem Kern 1c und ein hier nicht gezeigter Registersatz 3d dem Kern 1d usf., insbesondere je nach Anzahl der Kerne.
-
Jeder Registersatz hat wiederum eine allgemeine Anzahl von N Registern, z.B. Ra1 ,... RaN . Über diese Register, die faktisch Speicherstellen im Registersatz darstellen, werden die Daten ausgetauscht, insbesondere ebenso wie Parameter, die im Rahmen einer Datenübertragung benötigt werden, z.B. um ein bestimmtes Übertragungsprotokoll zu realisieren. Die Register der N-ten-Position im Registersatz haben bei allen Registersätzen dieselbe Funktion. Somit wird insgesamt mit jedem Registersatz 3a, 3b, 3c dieselbe Funktionalität zwischen einer Anwendung auf einem Kern und der funktionellen Einheit 4 realisiert. Z.B. ist die funktionelle Einheit 4 ein Drucker oder ein Kommunikationsgerät oder eine Datenverarbeitungseinheit, mit der die Daten einer Anwendung eines Kerns 1a, 1b, 1c, 1d weiter verarbeitet werden oder mit der Daten an eine Anwendung zur Verfügung gestellt werden.
-
Jede Anwendung auf einem Kern 1a, 1 b, 1c, 1d kann somit über den zugeordneten Registersatz auf dieselbe Funktion der gemeinsam genutzten funktionellen Einheit 4 zugreifen.
-
Die Peripherie-Einheit 2 sieht hier eine erste Verwaltungseinheit 5a vor, die den Daten einer Anwendung eine Quellangabe zufügt. Diese Quellangabe kann in einer zweiten Verwaltungseinheit 5b ausgewertet werden, um als Ziel den richtigen zugeordneten Registersatz zu adressieren. Dafür kann die Quellangabe z.B. über eine Routingtabelle in der Verwaltungseinheit 5b umgesetzt werden in eine Adresse des zugeordneten Registersatzes, so dass die Daten an diesen adressiert werden können. Eine dritte Verwaltungseinheit 5c kann vorgesehen sein, um Interrupts zwischen den Kernen und den Registersätzen zu verwalten.
-
So kommuniziert die Anwendung jedes Kerns jeweils räumlich separiert über einen eigenen Registersatz, aber jeweils mit derselben Funktionalität mit einer gemeinsamen funktionellen Einheit. Eine Interferenz zwischen den Daten der Anwendungen von verschiedenen Kernen kann so mit hoher Sicherheit verhindert werden.