Uebung 2-1
Lesen Sie What Every Programmer Should Know About Memory und beantworten Sie die Fragen.
Uebung 2-1a
Lesen Sie Kapitel 2, 2.1, 2.2.4 und 2.2.5. Erklären sie die Abkürzungen SMP und NUMA
- SMP (symmetric multi-processing) heißt, dass sich bei einem Multiprozessor System, mit identischen Prozessoren, die Prozessoren einen gemeinsamen Adressraum besitzen. Das bedeutet, dass jeder Prozessor mit der gleichen physikalischen Speicheraddresse die selbe Speicherzelle addressiert.
- NUMA (Non-uniform memory architecture) bedeutet, dass jeder Prozessor einen lokalen Speicher besitzt den er direkt ansprechen kann, woraus sehr geringe Zugriffszeiten resultieren. Um den RAM, bei einem Multprozessor System, für alle CPUs offen zu legen, gibt es so genannte Interconnects die ermöglichen, dass z.B. CPU1 auf den RAM von CPU2 zugreifen kann. Die Zugriffszeit hängt also davon ab ob der CPU direkt auf den Speicher zugreifen kann oder ob er auf fremden Speicher zugreifen muss.
Uebung 2-1b
Lesen Sie Kapitel 3, 3.1, 3.2. Was ist die von Neumann Architektur? Was kostet ein Zugriff auf ein Register bzw. auf den Hauptspeicher? Was versteht man unter eviction?
- Die Von-Neumann-Architektur (VNA) besagt, dass der Speicher eines Computers sowohl Daten, als auch Code enhalten kann. Die VNA besteht aus folgenden Komponenten.
- Rechenwerk (Arithmetic Logic Unit - ALU)
- Steuerwerk (Control Unit)
- Speicherwerk (Memory)
- Ein-/Ausgabewerk (I/O Unit)
- Zugriff auf register benötigt 1cyle, auf L1 ~3cyles, auf L2 ~14cyles und ca. 240cyles auf den hauptspeicher
- eviction ist der Vorgang wenn Daten in höher Levelige Caches gepushed werden (z.B. von L1 in L2).
Uebung 2-1c
Lesen Sie Kapitel 4, 4.1, 4.2. Wofür braucht man virtuellen Speicher? Warum wird mehrstufige address translation verwendet?
- Virtueller Speicher wird genutzt dass jeder Prozess den kompletten Speicher in einem System benutzen könnte, und glaubt alleine auf dem System ausfgeführt zu werden.
- Mehrstufige address translation wird benutzt um die größe der Tabellen klein zu halten, um die Tabellen von vielen Prozessen im Speicher zu haben ohne die Performance zu beeinflussen.
Uebung 2-1d
Lesen Sie Kapitel 6.2, 6.2.1 (bis Seite 51) und probieren Sie den angegeben Code zur Matrix-Multiplikation aus. Messen Sie mit gettimeofday und vergleichen Sie das Ergebnis mit dem Artikel. Was versteht man unter locality, Was versteht man unter alignment?
- Locality bedeutet, dass man vorraussagen kann, dass Daten die in der nähe von Daten liegen, auf die zugegriffen wurde, in naher Zukunft auch zugegriffen wird. Dies kann man zum cachen der Daten benutzen.
- Unter alignment versteht man, ob Daten anhand des caches allokiert wurden.