Übungsaufgaben zu

Grundlagen der Rechnerarchitektur

(Eicker / Feuerstein - SS 11)

  1. Universalrechner

    In vielen technischen Geräten sind heutzutage Mikroprozessor-Steuerungen eingebaut. Welche der folgenden Geräte kann man als Universalrechner ansehen und welche nicht? Geben Sie jeweils eine kurze Begründung.

    • (mechanische) Kurbelrechenmaschine
    • elektronischer Taschenrechner
    • Personal Computer
    • Großrechner
    • elektronische Waschmaschinensteuerung
    • digitale Armbanduhr
    • Handy
    • GPS-Navigationssystem
    • Postscript-Drucker
    • Personal Organizer
    • elektronische Schreibmaschine


  2. von Neumann Konzept

    Erläutern Sie die folgenden Prinzipien des von Neumann Universalrechners:

    • Computerbestandteile
    • Universalität
    • Programme als Daten
    • Linearer Speicher
    • Sequentielle Ausführung
    • Sprünge
    • Zusätzliche Primitiva
    • Binäre Codierung

    (Vgl. dazu: Wikipedia)

  3. von Neumann Flaschenhals

    Beschreiben Sie den üblicherweise als von Neumann Flaschenhals bezeichneten Sachverhalt in der von Neumann Architektur.
    Durch welche technischen Entwicklungen der Eigenschaften der einzelnen Computerbestandteile wurde dieses Problem massgeblich hervorgerufen?
    Welche Möglichkeiten sehen Sie, diesem Problem durch Modifikationen oder Erweiterungen der von Neumann Architektur zu begegnen?

  4. wait states

    Was versteht man unter wait states?
    Weshalb sind sie bei Rechnerarchitekturen erforderlich?

  5. Harvard Architektur

    Worin unterscheidet sich die Harvard Architektur von der klassischen von Neumann Architektur?
    Welche Vor- und Nachteile sehen Sie?
    In welcher Weise werden Harvard und Princeton Architekturen in modernen Rechnerarchitekturen mit mehrstufigen Caches realisiert?

  6. Caches

    Wie groß sind die Datenblöcke, die zwischen primärem (L1) und sekundärem (L2) Cache ausgetauscht werden? Warum?
    Wie nennt man die Prinzipien, aufgrund derer größere hit rates erreicht werden?

    (Vgl. dazu: Wikipedia)

    Nennen Sie typische Programm- und Datenstrukturen, die hohe bzw. niedrige Cache-Trefferquoten verursachen.

  7. Pipeline

    Beschreiben Sie das Prinzip eines Befehls-Pipeline.
    Was ist in diesem Kontext unter den Begriffen Latenz und (Befehls-)Durchsatz zu verstehen?
    Welche Probleme können beim Pipeline-Betrieb entstehen?
    Erläutern Sie die Begriffe Stalling, Bubble und (Pipeline-)Flush.

  8. Minimierung der semantischen Lücke

    Was ist unter der Bezeichnung Minimierung der semantischen Lücke (bridging the semantic gap) zu verstehen?
    Im Rahmen welcher Rechnerarchitektur spielt sie eine grundlegende Rolle und weshalb kam es zu diesem "Ziel"?

  9. CISC

    Das CISC-Designprinzip:

    Reduktion der semantischen Lücke zwischen Maschinensprache und Hochsprache durch

    • viele komplexe Maschinenbefehle
    • viele Adressierungsmodi
    • Unterprogrammmanagement im Maschinencode

    unter besonderer Berücksichtigung der langsamen Transportbefehle vom Speicher zur CPU und vice versa.

    Welchen Probleme gibt es bei der Ausführung von Instruktionen unterschiedlicher Länge im Programmspeicher und unterschiedlicher Ausführungsdauer?
    Nenne Sie Ihnen bekannte Beispiele für Befehlssatzerweiterungen.
    Durch welche Architektur ist es trotz beschränkter Chipgröße möglich, eine große Anzahl an komplexen Maschinenbefehlen zur Verfügung zu stellen?
    Welche Gründe haben bereits seit ca. 1970 zu einer Abkehr vom CISC-Design geführt?

  10. RISC

    Das RISC-Designprinzip:

    • Ermittlung von Schlüsseloperationen durch Analyse (typischer) Anwendungen und Reduktion des Befehlssatzes auf diese Schlüsseloperationen
    • Reduktion der Datenpfadzykluszeit für diese Schlüsseloperationen
    • Jedes "neue Feature" ist nur zuzulassen, wenn es häufig benutzt wird und die Mehrzahl der existierenden nicht verlangsamt.
    • (Wiederhole diesen Design-Zyklus für die anderen CPU-Ressourcen: Cache, Speichermanagement, Gleitkommakoprozessoren, ... )

    Was ist mit Schlüsseloperationen gemeint und was versteht man unter der Datenpfadzykluszeit?
    Warum entspricht die LOAD/STORE-Architektur diesem Designprinzip?
    Durch welche Form der Befehlsverarbeitung wird es möglich, Prozessoren zu erstellen, die (nahezu) einen Befehl pro Taktzyklus ausführen können?
    Was ersetzt in RISC-Systemen die Komplexität der Befehle in CISC-Systemen?

    Informieren Sie sich anhand einer WWW-Recherche über die in SPARC-Systemen genutzten Register-Stapel.

  11. CISC vs. RISC

    Stellen Sie tabellarisch typische architektonische Unterschiede von CISC-CPUs und RISC-CPUs dar: Maschineninstruktionen, Register, Speicherzugriff, ...

  12. hybride RISC/CISC-Prozessoren

    Skizzieren Sie die Struktur einer mikroprogrammierten CISC-CPU.
    Informieren Sie sich über nanoprogrammierte CPUs am Beispiel des Motorola 68000. Erweitern Sie die obige Skizze für diese Architektur.

    Welchen Vorteil bieten (ggf. mehrstufig) mikroprogrammierte CPUs in Bezug auf Designfehler der Hersteller?
    Welche weiteren Vorteile bieten Mikroprogramme (Beispiel: 68000-360)?

  13. superskalare CPUs

    Was versteht man unter einer superskalaren CPU?
    Durch welche Architekturmerkmale erreicht man Superskalarität? Welche neuen Probleme entstehen durch diese Merkmale?

  14. Instruction Level Parallelism

    Erläutern Sie folgende Risiken bei der gleichmäßigen Instruktionsabarbeitung jeweils anhand eines Beispiels:

    • Structural Hazard
    • Data Hazard
    • Control Hazard


  15. Register Files

    Warum ist bei RISC-Systemen eine grosse Anzahl von Registern notwendig?
    Warum wird in RISC-CPUs ein Register Stack / Register File anstelle einer großen Anzahl direkt adressierbarer Register verwendet?
    Erläutern Sie die Funktionsweise eines Register-Stapels beim Kontextwechsel (etwa beim Aufruf eines Unterprogramms).

  16. Instruction Reordering

    In welchen Fällen ist Instruction Reordering sinnvoll.
    Welche Voraussetzungen an die Prozessorhardware müssen dabei erfüllt sein?
    Was ist zu beachten, um keine falschen Resultate zu erhalten?

  17. Speculative Execution

    Was versteht man unter Speculative Execution?
    Welche Aktionen sind erforderlich, wenn Befehle aufgrund falscher Sprungvorhersagen spekulativ fälschlich ausgeführt wurden?
    Welche Arten von Operationen erscheinen Ihnen dabei besonders problematisch?

  18. Branch Prediction / Branch Predication

    Was ist unter Branch Prediction und einer Branch History Table zu verstehen?
    In welchen Stufen des klassischen vierstufigen Pipelinebetriebs (fetch, decode, execute, write) wird in welcher Form auf diese Tabelle zugegriffen? (Vgl. dazu: Wikipedia)

    In welcher Weise unterscheiden sich Branch Prediction und Branch Predication?
    Welche der Risiken gleichmäßigen Instruktionsabarbeitung lassen sich durch diese Techniken in welchem Maße lösen?

  19. EPIC

    Worin unterscheidet sich die explizite Parallelverarbeitung der EPIC-Architektur vom parallelen Dispatch des sequentiellen Befehlsstroms beim dynamic instruction scheduling etwa bei Intel Nehalem durch eine Instruction Fetch und Predecode Unit?
    Zu welcher Zeit erfolgt die Parallelisierung des Befehlsstroms bei beiden Architekturen?

    Beim Hyper-Threading stellt sich z.B. ein INTEL Pentium IV Xeon Prozessor nach außen hin als zwei Prozessoren dar.
    Inwiefern unterscheidet sich dies von der EPIC-Architektur?

  20. Virtuelle Speicheradressen

    Warum ist Multitasking-Multiuser-Systemen die Nutzung virtueller Adressen unbedingt erforderlich?
    Welche Probleme entstehen bei der Nutzung identischer Speicherbereiche insbesondere in Bezug auf Systemsicherheit und Datenschutz. Nennen Sie für beide Aspekte Szenarien, die Ihnen besonders problematisch erscheinen.

    Warum ist eine kooperative Nutzung des Arbeitsspeichers durch verschiedene Prozesse nicht sinnvoll?
    Welche Systemkomponente sollte die Speicherverwaltung statt dessen regeln?

  21. Speicherhierarchie

    Skizzieren Sie eine Speicherhierarchie mit L1-, L2-Cache, Arbeitsspeicher und externem Speicher mit typischen Größenangaben und Datendurchsätzen.

  22. Optimierung der Speicherverwaltung

    Nennen Sie mindestens drei Konzepte für die Optimierung der Speicherverwaltung und erläutern Sie diese kurz.

  23. Zeitgewinn durch Caches

    Welchen zeitlichen Vorteil erhält man durchschnittlich bei Verwendung zweier bzw. dreier Cache-Level? Geben Sie entsprechende Formeln für die Berechnung der Zugriffszeit analog zu

    TZ = TC + ( 1 - h ) TM
    (für einen Cache-Level) an.

    Wie gering muss bei einem System mit einem Cache-Level die Zugriffszeit auf den Cache mindestens sein, um bei einer Trefferquote von 80% einen Nutzen gegenüber einem System ohne Cache zu erzielen?

    Wie groß muss die (für alle Level identische) Trefferquote bei einem System mit zwei Cache-Leveln und den Zugriffszeiten 1, 10, 100 für Level-1-, Level-2-Cache und Hauptspeicher mindestens sein, um einen Nutzen gegenüber einem System ohne Cache zu erzielen?

  24. Cache-Assoziativität

    Erläutern Sie anhand einer Skizze, welche Hauptspeicherblöcke in den Cache-Organisationsarten

    • direkt abgebildet (direct mapped)
    • 2-fach satzsassoziativ (2-way set associative)
    • 4-fach satzsassoziativ (4-way set associative)
    • vollassoziativ (fully associative)
    in welcher Cachezeile gespeichert werden können.

    Welche Vor- und Nachteile haben die Varianten in Bezug auf Nutzung des Cachespeichers und Hardwareaufwand.

  25. Parallelrechnerklassen

    Skizzieren Sie die Rechnerklassen SISD, SIMD, MIMD und nennen Sie typische Beispiele für Rechner jeder Klasse.
    Worin unterscheidet sich ein SPMD-Rechner von den Klassen SIMD und MIMD der Flynnschen Systematik? (Vgl. dazu: Wikipedia)
    Warum ist das Prinzip MISD nicht sinnvoll?

  26. Shared / Distributed Memory

    Skizzieren Sie die Speicherorganisationstypen

    • gemeinsamer Speicher (shared memory)
    • verteilter Speicher (distributed memory)
    • gemeinsam genutzter verteilter Speicher (distributed shared memory)

    Welche Vor- und Nachteile haben diese Formen der Speicherorganisation bezüglich Hardware-Aufwand, Cacheorganisation und Programmierung?

  27. Cache-Kohärenz

    Beschreiben Sie das Verfahren, das bei einem Snoopy-Cache für die Sicherstellung der Konsistenz gleicher Cachezeilen in mehreren Caches Verwendung findet.
    Worin unterscheiden sich die Varianten write through und write back?
    In welchen (Schreib-/Lese-)Situationen kann es zu Problemen kommen, die zusätzliche Lösungsstrategien erfordern?

  28. Skalierung

    Zeigen Sie, dass der Speedup in Amdahls Gesetz für beliebig viele Prozessoren gegen den Wert

    S = 1 + Tp / Ts
    konvergiert und durch diesen nach oben beschränkt ist.

    Sei nun P der parallele Anteil und (1-P) der serielle Anteil eines Programms.
    Wie lautet Amdahls Gesetz für den Speedup SN bei N Prozessoren und für den Speedup S für beliebig viele Prozessoren?
    Wann ist der Speedup für unendlich viele Prozessoren unendlich groß?

    Wie groß muss der parallele Anteil in Gustafsons Gesetz sein, damit der Speedup der Anzahl der Prozessoren entspricht?

  29. CSMA/CD

    Wofür steht das Akronym CSMA/CD? Erläutern Sie das damit bezeichnete Verfahren am Beispiel des Funkverkehrs mehrerer Funkstationen, die gemeinsam nur eine Funkfrequenz benutzen. (Vgl. dazu: Wikipedia)

  30. Crossbar Switch

    Was ist ein Crossbar Switch (Kreuzschienenschalter)? Zu welchem Zweck wird er eingesetzt?

    Skizzieren Sie mit einer Zeichnung, wann sich Speicherzugriffe von 4 CPUs auf 3 Speicherbänke bei Verbindung mit einem Crossbar Switch blockieren und wann nicht (2 Skizzen).

  31. Hypercubes

    Geben Sie einen Algorithmus an, mit dem man in einem Verbindungsnetzwerk mit d-dimensionaler Hypercubus-Topologie einen kürzesten Weg von Knoten A zu Knoten B (in kanonischer Nummerierung) findet (Hinweis: Binärdarstellung der Knotennummern).

    Wieviele kürzeste Wege gibt es zwischen zwei Knoten, deren Nummern sich in ihrer Binärdarstellung an k Stellen unterscheiden?

  32. Netzwerk statt Peripheriebus

    Neben Druckern werden in den heutigen Hochgeschwindigkeits-LANs auch immer mehr Massenspeicher über das LAN mit dem Rechner verbunden. (siehe Wikipedia: NAS und SAN)

    Beschreiben Sie Vor- und Nachteile dieser Ansätze verglichen mit dem alten Ansatz DAS.

    Was bedeutet das Akronym SCSI und wie sieht die aktuelle Entwicklung im SCSI-Umfeld aus (siehe Wikipedia: SAS und iSCSI).

  33. InfiniBand vs. Ethernet

    Stellen Sie die Unterschiede der Netzwerktechnologien InfiniBand und Ethernet tabellarisch dar.

    Für welchen Einsatz ist welche der Technologien zu bevorzugen.
    Wie läßt sich ein (heute in Cluster-Systemen übliches) Netzwerk mit einer Bandbreite von 40 Gbis/s auf QDR-InfiniBand-Basis realisieren?

  34. Fließkommazahlen

    Lesen Sie den Artikel über Fließkommazahlen und erläutern Sie die Vor- und Nachteile von Fließkommasystemen.
    Stellen Sie mit Hilfe des Artikels

    What Every Computer Scientist Should Know About Floating-Point Arithmetic

    die wichtigsten "unerwarteten" Eigenschaften der Fließkommaarithmetik zusammen.

    Referieren Sie kurz die Historie der auf Computern eingesetzten Fließkommasysteme.
    Welche Vorteile bringt der Standard IEEE 754r mit sich?

  35. Bussysteme

    Was ist ein Bus (in einem von Neumann Rechner)?
    Welche Typen von Bussen kennt der von Neumann Rechner? Für welche Zwecke werden sie jeweils eingesetzt?

    Welche Probleme treten bei der Nutzung klassischer Bussysteme auf und wie werden sie gelöst?

  36. Circuit Switched Bus

    Ein circuit switched Bus (vgl. Leitungsvermittlung) hat gravierende Nachteile. Schildern Sie einen solchen in einer Fallstudie.

    Erläutern Sie die Aktionen auf dem Bussystem beim Schreiben eines Datenwortes von der CPU in den Speicher.

  37. Serielle Paket-basierte Bussysteme

    Neuere Bussysteme basieren zumeist auf dem Paket-Prinzip und werden seriell genannt.
    Warum sind sie der alten "circuit switched" Handshake-Methode überlegen?
    Wie wird das Problem des gleichzeitigen Sendens von Paketen durch mehrere Bus-Teilnehmer gelöst?

  38. Benchmarks

    Was sind Benchmarks? Welche Aussagen können Sie aus einem kompletten SPEC-Benchmark-Protokoll entnehmen? Welche Typen von Benchmarks gibt es (vgl. Standard Performance Evaluation Corporation)?

    Wie kann man diese Daten zur Abschätzung der Leistungsfähigkeit eines Computersystems für ein spezielles Aufgabengebiet einsetzen?

  39. Hochverfügbarkeitsrechner

    Mission Critical Unternehmenscomputer müssen eine extrem hohe Verfügbarkeit aufweisen.
    Was versteht man unter der Verfügbarkeit eines Rechners?
    Beschreiben Sie kurz konstruktive Maßnahmen, die solchen HighEnd-Servern eine so hohe Verfügbarkeit verleihen.

    Nennen Sie Beispiele für Mission Critical Computereinsätze.

  40. High Performance Computing

    Welche aktuellen Probleme aus Wissenschaft und Technik erfordern den Einsatz von High Performance Computing? Nennen Sie typische Beispiele. Aus welchem Grund sind Universalrechner für die genannten Beispiele jeweils nur eingeschränkt geeignet?

    Wieso verwendet man heute oft Standardtechnologien anstelle spezieller Entwicklungen für den HPC-Bereich?
    Welche zusätzlichen Anforderungen ergeben sich bei der Nutzung von COTS-Produkten?

  41. LINPACK

    Was ist LINPACK? Wodurch wurde es inzwischen weitgehend ersetzt?
    Warum ist LINPACK für die Ermittlung der Leistungsfähigkeit moderner HPC-Systeme nur eingeschränkt geeignet (vgl. Wikipedia)?

  42. HPC-Cluster

    Welche der Komponenten eines HPC-Clusters lassen sich bildlich mit Gehirn, Nerven, Herz und Seele vergleichen?
    Bei welche dieser Komponenten lassen sich COTS-Produkte nutzen?
    Warum ist ein Netzwerk einzelner Rechner zunächst "seelenlos"?
    Welche "Zutat" ist für einen HPC-Cluster zusätzlich erforderlich?

  43. BLAS

    Was versteht man unter BLAS?
    Nennen Sie die Stufen der BLAS-Funktionalitäten mit mathematischen Beispielen.
    Welche Größenordnungen haben bei typischen BLAS-Operationen der jeweiligen Stufen jeweils die Anzahlen der Einzelrechenoperationen und Speicherzugiffe?

  44. Vektor-Prozessoren

    Nennen Sie die Grundidee für die Entwicklung von Vektor-Prozessoren.
    Welche Operationen lassen sich durch Vektor-Prozessoren ausführen?
    Welches Parallelisierungs-Paradigma liegt Vektor-Prozessoren zugrunde?
    Auf welche Weise lassen sich Vektoroperationen im herkömmlichen CISC-Designprinzip realisieren?

    Stellen Sie in einer Skizze die Ausführung einer verketteten Vektor-Operation (a+b)+c für Vektoren a,b,c in einer Vektor-Pipeline dar.

  45. Speicherzugriff

    Aus welchem Grund ist es sinnvoll, Speicherzugriffe auf mehrere Speicherbänke durch Steuerung der Schrittweite (stride) zu optimieren?
    Welche Werte sind dabei grundsätzlich zu wählen, was sollte vermieden werden?

  46. Nutzung von Vektor-Prozessoren

    Wie lassen sich zwei unterschiedliche Vektor-Operationen auf jeweils einer von zwei komplementären Teilmengen der Vektor-Komponenten innerhalb einer einzelnen Vektoreinheit ausführen?
    Welche Technik läßt sich zusätzlich nutzen, wenn nur eine der Operationen auszuführen ist?

  47. Aktuelle Vektor-Prozessoren

    In welchen aktuellen Hardware-Entwicklungen spielen Vektor-Einheiten wieder eine wichtige Rolle?

  48. Feldrechner

    Erläutern Sie die Grundprinzipien eines Feldrechners.
    In welcher Hinsicht unterscheiden sich Feldrechner grundsätzlich von zellulären Automaten und welche Gemeinsamkeiten gibt es?
    Für welche Simulationen naturwissenschaftlicher Prozesse erscheinen Ihnen diese Rechnertypen besonders geeignet?

  49. Systolische Arrays

    Erläutern Sie die Grundprinzipien systolischer Arrays.
    Welches Prinzip wird in systolischen Arrays in welcher Weise verallgemeinert?
    Welche Gemeinsamkeiten mit Feldrechnern und zellulären Automaten gibt es?
    Zu welchen Rechnerklassen (MIMD, ...) sind Feldrechner, zellulären Automaten und systolische Arrays jeweils zu zählen?

  50. Beowulf

    Nennen Sie die Grundidee eines Beowulf Clusters.

  51. Clustermanagement

    Welche zusätzlichen Management-Funktionalitäten sind erforderlich, um aus einem Netzwerk eigenständiger Rechenknoten einen Clustercomputer zu machen?

  52. Service-Netzwerke

    Welche Aufgabe hat das Service-Netzwerk in einem Cluster? Welche Komponenten werden vernetzt?
    Warum ist es sinnvoll, solch ein Netzwerk neben dem schnellen Datenkommunikationsnetzwerk zu betreiben?

  53. Management-Netzwerke

    Welche Aufgabe hat das Management-Netzwerk in einem Cluster? Welche Knoten werden vernetzt?

  54. Ubiquitious Computing

    Beschreiben Sie Gefahren, die durch die Allgegenwart von Computersystemen im Alltag des modernen Menschen entstehen (vgl. Wikipedia).




fpf's home page Last modified by Peter Feuerstein (feuerstein@uni-wuppertal.de) Valid HTML 4.01! Internettechnologien-Homepage