Multipliziert und invertiert: Forscher zeigen rechnenden Speicher für Matrixoperationen

Wenn das Fachmagazin Nature Electronics eine Studie über Compute in Memory(öffnet im neuen Fenster) (CIM) veröffentlicht, muss etwas dran sein, das über einfaches Rechnen im Speicher hinausgeht. Denn das Konzept ist alles andere als neu , wir haben in den vergangenen Jahren mehrmals darüber berichtet . Leider ist nicht direkt offensichtlich, was die Forscher der Politecnico Milano Besonderes gebaut haben.
Es lässt sich jedoch ein Entwurf der Veröffentlichung(öffnet im neuen Fenster) finden (den wir mit wget herunterluden, im Browser kam es bei uns zu Zeitüberschreitungen). Darin steht: Besonders sei, dass der Speicher als Closed-Loop-System betrieben werden könne. Darauf kommen wir noch zurück, werfen aber zunächst einen Blick auf das Grundkonzept. Jede Speicherzelle ist bei CIM ein einstellbarer Widerstand, der zwischen quer liegenden Spalten- und Zeilenleitern eingebunden ist.
Wird eine Spannung an einen Spaltenleiter angelegt, fließt ein von der Leitfähigkeit (Kehrwert des Widerstands) abhängiger Strom in den Zeilenleiter. Werden gleichzeitig an alle Spaltenleiter unterschiedliche Spannungen angelegt, fließen entsprechend viele Teilströme in jeden Zeilenleiter. Aufgrund des Kirchhoffschen Knotenpunktsatzes(öffnet im neuen Fenster) addieren sie sich zu einem Gesamtstrom, die Speichermatrix implementiert die Matrix-Vektor-Multiplikation I = G x V (mit Stromvektor I, Leitfähigkeitsmatrix G und Spannungsvektor V).
Andere Verschaltung invertiert die Matrix
So weit, so bekannt und nachvollziehbar. Die Mailänder Forscher entwickelten allerdings eine andere Verschaltung, die sie auch bereits vorstellten(öffnet im neuen Fenster) : Bei dieser wird ein konstanter Strom in jeden Zeilenleiter geleitet, dessen anderes Ende mit dem invertierenden Eingang eines Operationsverstärkers verbunden ist.

Der Ausgang des Operationsverstärkers ist an jeweils einen Spaltenleiter angebunden, der nichtinvertierende Eingang liegt auf Masse. Der Ausgang wird also über den Widerstand der Zellen auf alle Zeilenleiter geführt – der Loop ist geschlossen. Die Operationsverstärker versuchen nun, ihre Ausgänge so zu regeln, dass an beiden Eingängen die gleiche Spannung liegt. Da sie aufgrund der gekreuzten Leiter auch untereinander verbunden sind, kommt es zu Wechselwirkungen. Dass dabei die Funktion I = G -1 x V berechnet wird, ist nicht direkt einleuchtend, aber für viele Anwendungen praktisch.
Denn mit klassischen Computern ist das Invertieren einer Matrix eine recht aufwendige Operation, beim rechnenden Speicher erledigt das die Physik. Passt eine Matrix nicht in den Speicher, lassen sich die Berechnungen rekursiv zerlegen. Als Beispielanwendungen zeigten die Forscher das Lösen von Gleichungssystemen, das Kalman-Filter (g+) sowie inverse Kinematik, mit der die Bewegung von Roboterarmen geplant wird.
Mit 14-nm-Technik theoretisch effizienter als andere Chips
Testchips des rechnenden Speichers ließen die Forscher bei ST Microelectronics in einem 90-nm-Prozess fertigen. Während andere Gruppen oft Resistiven RAM oder Phasenwechselspeicher nutzen, implementierten die Mailänder die Zellen als digitales Potentiometer. Das macht sie recht komplex, pro Zelle werden 40 Transistoren und 5 Widerstände (40T5R) benötigt. Für jeden Widerstand ist ein SRAM-Bit implementiert, das ihn zuschaltet oder sperrt. So lässt sich ein sehr lineares Verhalten der Widerstände garantieren, was die Genauigkeit verbessert.
Im 90-nm-Prozess belegt eine Zelle trotz der verhältnismäßig geringen Auflösung von 5 Bit 442 μm 2 . Deshalb implementierten die Forscher lediglich zwei 4.096-Bit Arrays (64 x 64 Zellen). Diese lassen sich verschalten, um den Wertebereich von 0 bis 31 (Uint5) auf -32 bis 31 zu erweitern (Int6). Hinzu kommen Digital-Analog- und Analog-Digital-Wandler (DAC und ADC) für Ein- und Ausgabe der Vektoren. Vorgesehen ist zudem ein Digitaler Signalprozessor (DSP), um Rauschen und Effekte der analogen Komponenten herauszurechnen.
Im Vergleich unterliegen die Testchips GPUs, Mikrocontrollern und FPGAs bei Durchsatz, Latenz und Flächeneffizienz noch deutlich. In einer mit einem 14-nm-Prozess gefertigten Variante mit größerer Speichermatrix sehen die Forscher ihren rechnenden Speicher aber teils mehrere Größenordnungen vorn.



