MMIX Flashcards

1
Q

Was ist MMIX?

A
  • 64-Bit Modellcomputer (nur eine Software-Simulation)
    → wird vor allem in der Lehre eingesetzt
  • RISC-Befehlssatz
    (Reduced Instruction Set Computer)
  • weitere Merkmale:
  • 256 Allzweckregister + 32 Spezialregister
  • erfunden von Donald E. Knuth
    → verwendet MMIX in seinem Werk “The Art of Computer programming” um Algorhythmen zu
    beschreiben
  • ersetzt Vorgänger “MIX”
  • Intention von Knuth: einfache, elegante Maschinensprache, die dennoch genügend
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Speicherhierarchie

A
  • Top -Down Organisiert:
    → von Oben nach Unten = Langsamer Zugriffszeit, Immer mehr Speicherplatz und günstigeren
    Preis pro Bit
  • Daten können nur zum “Nachbar” übertragen werden
    Register Cache Hauptspeicher Hintergrundspeicher
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Register

A
  • liegt im CPU
  • speichert interne Befehle und Daten
  • Der MMIX → 256 Register
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cache

A
  • zwischenspeicher
  • direkte und leichte verbindung zum CPU
  • meist verwendetsten/nächsten Daten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hauptspeicher

A
  • bakannt als RAM
  • grade auszuführenden Programme oder Programmteile → benötigten Daten
  • verknüpft durch Bussystemen zum CPU
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hintergrund- /Sekundärspeicher

A
  • Festplatte

- Archivierung der aktuell nicht gebrauchten Daten, sowie Bilder Dokumente, oder Programme

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Virtuelle Adressen

A
  • Die Adresse, die aus den Berechnungen mit verschiedenen Befehlen und Operanden berechnet
    wird, wird auch effektive Adresse genannt.
  • Somit ergeben 64 Bit: 264 = 18.446.744.073.709.551.616 mögliche Adressen
  • Dieser Adressraum steht in voller Größe zur Verfügung.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Reale Adressen

A
  • Die Menge der tatsächlich verfügbaren Adressen nennt man den realen Adressraum
    ○ Diese wird durch die Hardware vorgegeben
    ○ Und wärend des laufenden Programms ist es nötig, dass den virtuellen Adressen, reale
    Speicheradressen zugeordnet werden
  • Es gibt zwei Methoden für eine solche Zuordnung, eine Statische Zuordnung (beim Laden des
    Programms) und eine dynamische Zuordnung (während der Laufzeit)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Statische Speicherzuordnung

A
  • Das Programm wird vor seiner Ausführung in den Hauptspeicher geladen
  • Bei einfachen Betriebssystemen ist die Stelle, an der das Programm stehen muss, fest vorgegeben.
  • Es gibt Systeme die mehr Komfort bieten. Diese Systeme können durch ihren Lader den Code
    verschieben, dabei werden alle Adressen umgerechnet.
  • Im ursprünglichen MS-DOS wurden alle Programme an die Stelle #100 geladen.
  • Erst mit der Zeit, wo sich die Größe des Speicherplatzes enorm erhöhte wurde das MS-DOS so
    erweitert, dass Programme an wechselnde Adressen geladen werden können
    ○ (((MS-DOS, kurz für Microsoft Disk Operating System, ist Microsofts erstes
    Betriebssystem für x86-PCs)))
  • Die Aufgaben des Betriebssystems beschränken sich bei dieser einfachen Speicherverwaltung auf
    die Kennzeichnung von freien und belegten Speicherbereichen sowie die Zuteilung und Freigabe
    geeigneter Bereiche.
  • Dabei kann Speicherzerstückelung oder auch (fragmentation) auftreten.
  • Bei Mehrprogrammbetrieb werden dynamisch verschieden große Speicherbereiche angefordert
    und wieder freigegeben.
  • Dadurch können viele kleine Fragmente auftreten, die keinem lauffähigem Programm zugeteilt
    werden könen.
  • Systeme mit statischer Speicherzuteilung können nur Programme ausführen, die in voller Länge in
    den Hauptspeicher passen.
  • Auch der MMIX-Simulator arbeitet nach dem Prinzip der statischen Speicherzuordnung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Dynamische Speicherzuordnung

A
  • Bei der dynamischen Speicherzuordnung werden die jeweils benötigten Code- und Datenbereiche
    erst zur lauzeit in den Hauptspeicher geladen.
  • Dabei nutzt man die sogenannte ,,Lokalität” der Programme aus
  • Statische Untersuchungen haben ergeben, dass ein Großteil der ,,typischen” Programme immer
    nur auf einen relativ beschränkten bereich der Daten zugreift, und dass dabei auch immer nur ein
    kleiner Ausschnitt des codes benötigt wird.
  • Es genügt folglich, zu einem bestimmten Zeitpunkt immer nur den aktuell benötigten Teil der
    Daten und des Programms im Hauptspeicher zu halten, der Rest kann im Hintergrundspeicher
    bleiben
  • Damit sind nun auch Programme ausführbar, deren Code und Daten nicht vollständig in den
    vorhandenen Hauptspeicher passen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

” Paging-Verfahren “

A
  • Kachelverwaltung
  • Speicherverwaltung per Seitenadressierung durch das Betriebssystem
  • virtueller Speicher in gleich große Bereiche eingeteilt “Pages” (Länge ist einer Zweierpotenz)
  • realer Speicher ebenfalls eingeteilt, genannt Rahmen “frames”, kann genau eine Seite aufnehmen
    (- freie Rahmen des Hauptspeichers verwaltet in Freispeicherliste “Free list” )
  • Zuordnung von Seite und Rahmen in der Seitentabelle “Page Table”
  • für Seite s ein Eintrag in die Seitentabelle vorgesehen, gibt an ob s schon im Hauptspeicher
    geladen ist (valid Bit)
  • falls ja auch noch ob Rahmennummer r zugeteilt wurde
    + Information über Zugriffsrechte
    +“dirty bit” zeigt an ob die Seite modifiziert wurde (wichtig, da unmodifizierte Seiten nicht
    zurückgeschoben werden)
  • Seitentabelle wird aktualisiert wenn 1. eine neue Seite geladen wird, 2. eine Schreibzugriff
    stattfindet (dirty bit), oder 3. eine Seite freigegeben wird
    (- herausfinden der Adressen am Beispiel erklären)
  • zwei Probleme entstehen:
    1. Geschwindigkeit
  • Speichertabelle liegt im Hauptspeicher, d.h. dass ein Zugriff recht lange dauert
  • > Lösung: zusätzlicher Spezialspeicher TBL (Translation look aside buffer)
    2. Verdrängung von Seiten
  • Möglichkeit, dass es mehr Seiten als Rahmen gibt
  • > Technik: FIFO (First In/First Out)
  • d.h., dass älteste Seiten verdrängt werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly