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
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
3
Q
Register
A
- liegt im CPU
- speichert interne Befehle und Daten
- Der MMIX → 256 Register
4
Q
Cache
A
- zwischenspeicher
- direkte und leichte verbindung zum CPU
- meist verwendetsten/nächsten Daten
5
Q
Hauptspeicher
A
- bakannt als RAM
- grade auszuführenden Programme oder Programmteile → benötigten Daten
- verknüpft durch Bussystemen zum CPU
6
Q
Hintergrund- /Sekundärspeicher
A
- Festplatte
- Archivierung der aktuell nicht gebrauchten Daten, sowie Bilder Dokumente, oder Programme
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.
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)
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
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.
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