Efficiency and predictability in resource sharing multicore systems
Autoren
Mehr zum Buch
In der Automobil-, Avionik- und Automatisierungsindustrie gewinnen Multiprozessor- und Multicoresysteme immer mehr an Bedeutung. Die Anwendungen werden komplexer und zahlreicher, und viele führen zeitkritische Funktionen aus. In anderen Worten, die Anwendungen haben strikte Echtzeitbedingungen. Mit der Komplexität der Aufgaben steigt auch deren Rechenintensität. Traditionellerweise begegnete man diesem Problem mit erhöhten Ausführungsfrequenzen und der Parallelisierung von Instruktionen. Um den Anforderungen an Rechenleistung weiterhin gerecht werden zu können wird vermehrt auf Parallelisierung, also auf Multiprozessor- und Multicoresysteme, gesetzt. Neben Instruktionen werden auch Ausführungsthreads und Aufgaben (Tasks) parallelisiert, was zu einer weiteren Steigerung der Rechenkapazitäten führt. Kommunikation zwischen Tasks auf verschiedenen Prozessoren führt jedoch zu Zugriffskonflikten auf der gemeinsam genutzten Ressource, z. B. auf Bussen oder dem Hauptspeicher. Dieser Effekt wird als „Contention“ bezeichnet und führt zu zusätzlichen Verzögerungen bei der Ausführung von Tasks. Daraus folgt, dass die Steigerung der Rechenkapazität aufgrund von Parallelisierung durch die notwendig werdende Kommunikation zwischen Tasks begrenzt ist. Man stelle sich ein System mit mehreren nebenläufigen Tasks auf verschiedenen Prozessoren vor, wobei jeder Task auf den gemeinsamen Speicher zugreifen will. Zugriffe der einzelnen Tasks werden der Reihe nach abgearbeitet, das heißt die Ausführungszeiten der Speicherzugriffe eines Tasks hängen von der Anzahl der Speicherzugriffe aller anderen Tasks ab. Diese Abhängigkeit der Tasks limitiert die Steigerung der Rechenleistung und erhöht die Komplexität von Analyseverfahren zur Bestimmung der ungünstigsten Ausführungszeit (worst case execution time).