Information Technology Reference
In-Depth Information
des Hauptspeichers gehalten werden und ein Zugriff darauf sich somit automatisch
auf die maximale durch Verschränkungsgrad und Vektor beschränkte Anzahl von
Speicherbänken verteilen und verzögerungsfrei bearbeiten lässt. Selbst wenn durch
Replikation der Speichereinheit mehrere Elemente parallel adressiert werden, ist
dies möglich, solange der Hauptspeicher über einen entsprechend breiten Datenbus
an den Vektorprozessor gekoppelt ist.
Sobald jedoch auf Vektoren zugegriffen wird, deren Elemente nicht in unmittelbar
aufeinander folgenden Adressen des Hauptspeichers gehalten werden, wie z.B. auf
Spaltenvektoren einer zeilenweise organisierten Matrix, treten vermehrt Zugriffs-
konflikte auf (für solche Vektoren sind i.Allg. Adressierungsarten verfügbar, die es
erlauben, die Adresse um eine innerhalb vorgegebener Grenzen beliebigen Schritt-
weite - stride - zu modifizieren). So ist für jeden Vektorrechner bei aufeinander fol-
genden Zugriffen eine Schrittweite angebbar, bei der eine einzelne Speicherbank
innerhalb der Speicherlatenzzeit mehr als einmal adressiert wird. Verschärfend wirkt
sich dabei aus, dass mit nicht aufeinander folgenden Adressen bei Schrittweiten
ungleich Eins das parallele Lesen oder Schreiben mehrerer Vektorelemente i.Allg.
nicht über einen breiten Bus bearbeitbar ist, sondern entsprechend des Replikations-
faktors mehrere Zugriffe parallel ausgeführt werden müssen.
Konflikte treten trotzdem selten auf, und zwar deshalb, weil in mehr als vier Fünf-
teln der Fälle (87%) auf die Vektorelemente mit einer Schrittweite von genau Eins
zugegriffen wird [41]. Selbst wenn dies nicht der Fall ist oder man den Hauptspei-
cher mit einer veränderlichen Schrittweite adressiert - z.B. um Elemente von Vekto-
ren wahlfrei ansprechen zu können (siehe Bemerkung) bzw. parallelen Einheiten
den zeitgleichen unabhängigen Zugriff auf den Hauptspeicher zu gewähren - lässt
sich die Wahrscheinlichkeit für Konflikte reduzieren, nämlich, indem die Anzahl der
verschränkten Speicherbänke vergrößert wird. Aus diesem Grund verfügt z.B. ein
einzelner Vektorprozessor des VPP700 von Fujitsu über 512 Speicherbänke die par-
allel ansprechbar sind. Die maximal erreichbare Speicherbandbreite beträgt hierbei
18,2 GByte pro Sekunde [192]. Nachteil eines derart extrem verschränkten Spei-
chers ist die hohe Komplexität der Realisierung, was unproblematisch in Superrech-
nern, jedoch problematisch in leistungsstarken Arbeitsplatzrechnern ist.
Bemerkung. Zur Kompression bzw. Expansion von mit vielen Nullen besetzten Vektoren verfü-
gen Vektorprozessoren i.Allg. über speziell dafür vorgesehene Transformationsoperationen . Die
gebräuchlichsten sind in Bild 3.8 dargestellt. Bei einer Kompression werden aus dem Operanden-
vektor die Nullen entfernt und zusätzlich zum eigentlichen Ergebnis ein Vektor erzeugt, der Auf-
schluss darüber gibt, an welchen Positionen im Operandenvektor die einzelnen Elemente codiert
sind. Bei einer Kompression mit Bitmaske entsprechend Bild 3.8a werden z.B. die im Operanden-
vektor mit Werten ungleich Null besetzten Positionen durch gesetzte Bits in einer Maske gekenn-
zeichnet (die drei Grau unterlegten Elemente gehören jeweils zum selben Eintrag). Das Verfahren
hat den Vorteil, dass neben dem komprimierten Vektor nur eine hier acht Bit breite Maske gespei-
chert werden muss.
Bei der Kompression mit Indexvektor entsprechend Bild 3.8c (dem sog. scattering ), wird neben
dem komprimierten Vektor ein Indexvektor erzeugt, in dem die Positionen der einzelnen Elemente
im Operandenvektor gespeichert sind. So ist die grau unterlegte Sieben im Operandenvektor an
Position Zwei codiert, was im als Ergebnis erzeugten Indexvektor entsprechend eingetragen ist. Zur
Expansion von Vektoren existieren jeweils zum Kompressionsverfahren passende Umkehroperatio-
Search WWH ::




Custom Search