Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ELECTRICITY METERING CIRCUIT FOR A MATRIX OPERATION CIRCUIT, SUMMATION CIRCUIT AND METHOD FOR OPERATION THEREOF
Document Type and Number:
WIPO Patent Application WO/2022/043077
Kind Code:
A1
Abstract:
The invention relates to an electricity metering circuit for a matrix operation circuit, having a circuit input for an electrical input current that is an output current of the matrix operation circuit. The electricity metering circuit is designed to provide an earth potential at the circuit input, to integrate the input current at the circuit input over time, to store a stored charge, which is increased in proportion to the integrated input current up to a predetermined maximum stored charge in accordance with a proportionality constant, to quantify the integrated input current in a charge unit of measure, the charge unit of measure corresponding to the maximum stored charge in light of the proportionality constant, and to determine the integrated input current, rounded down to the nearest integral charge unit of measure, as a metering sum. The invention additionally relates to a summation circuit that comprises a matrix operation circuit and multiple electricity metering circuits connected to current outputs of the matrix operation circuit, a method for operating a summation circuit, a computing unit for performing the method and a computation module that comprises a summation circuit and a computing unit.

Inventors:
SOLIMAN TAHA (DE)
KIRCHNER TOBIAS (DE)
Application Number:
PCT/EP2021/072487
Publication Date:
March 03, 2022
Filing Date:
August 12, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06G7/14; G06N3/063; G06N3/04; G11C11/54; G11C13/00
Other References:
HAYS LYDIA M: "Design Considerations for Training Memristor Crossbars Used in Spiking Neural Networks", 1 April 2018 (2018-04-01), RIT Scholar Works, pages 1 - 74, XP055860954, Retrieved from the Internet [retrieved on 20211112]
JIANG HAO ET AL: "Pulse-Width Modulation based Dot-Product Engine for Neuromorphic Computing System using Memristor Crossbar Array", 2018 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS), IEEE, 27 May 2018 (2018-05-27), pages 1 - 4, XP033434722, DOI: 10.1109/ISCAS.2018.8351276
QURESHI MUHAMMAD SHAKEEL ET AL: "CMOS interface circuits for reading and writing memristor crossbar array", CIRCUITS AND SYSTEMS (ISCAS), 2011 IEEE INTERNATIONAL SYMPOSIUM ON, 1 May 2011 (2011-05-01), pages 2954 - 2957, XP055861089, ISBN: 978-1-4244-9473-6, DOI: 10.1109/ISCAS.2011.5938211
CAI FUXI ET AL: "A fully integrated reprogrammable memristor-CMOS system for efficient multiply-accumulate operations", NATURE ELECTRONICS, vol. 2, no. 7, 1 July 2019 (2019-07-01), pages 290 - 299, XP055860966, Retrieved from the Internet [retrieved on 20211112], DOI: 10.1038/s41928-019-0270-x
Download PDF:
Claims:
- 23 -

Ansprüche

1 . Stromzählschaltung (20) für eine Matrixoperationsschaltung, aufweisend einen Schaltungseingang (32) für einen elektrischen Eingangsstrom, der ein Ausgangsstrom der Matrixoperationsschaltung ist, die dazu eingerichtet ist: ein Massepotential am Schaltungseingang bereitzustellen; den Eingangsstrom am Schaltungseingang über die Zeit zu integrieren; eine Speicherladung zu speichern, die bis zu einer vorbestimmten Maximalspeicherladung entsprechend einer Proportionalität proportional zum integrierten Eingangsstrom erhöht wird; den integrierten Eingangsstrom in einer Ladungsmaßeinheit zu quantifizieren, wobei die Ladungsmaßeinheit unter Berücksichtigung der Proportionalität der Maximalspeicherladung entspricht; den auf die nächste ganzzahlige Ladungsmaßeinheit abgerundeten integrierten Eingangsstrom als eine Zählsumme zu bestimmen.

2. Stromzählschaltung nach Anspruch 1 , umfassend eine Strom-Spannungs-Wandler-Stufe (22), die mit dem Schaltungseingang verbunden ist und die dazu eingerichtet ist, das Massepotential am Schaltungseingang bereitzustellen und einen Eingangsstrom am Schaltungseingang in eine dazu proportionale erste Spannung zu wandeln; eine Spannungs-Strom-Wandler-Stufe (24), die dazu eingerichtet ist, die erste Spannung in einen dazu proportionalen Ladestrom zu wandeln; eine Integrier-Stufe (26), die dazu eingerichtet ist, die Speicherladung zu speichern und eine zur Speicherladung proportionale zweite Spannung bereitzustellen, wobei der Ladestrom der Integrier-Stufe zur Erhöhung der Speicherladung zugeführt wird; eine Vergleichs- und Entlade-Stufe (28), die dazu eingerichtet ist, die zweite Spannung mit einer Vergleichsspannung zu vergleichen, die so vorbestimmt ist, dass, wenn die zweite Spannung gleich der Vergleichsspan- nung ist, die Speicherladung der Maximalspeicherladung entspricht, und, wenn die zweite Spannung die Vergleichsspannung überschreitet, die in der Integrier-Stufe Speicherladung zu entladen und ein Zählsignal zu erzeugen; und eine Zählstufe (30), die dazu eingerichtet ist, die Zählsumme zu speichern und, wenn das Zählsignal erzeugt wird, die Zählsumme um eins zu erhöhen. Stromzählschaltung nach Anspruch 2, wobei die Strom-Spannungs-Wandler- Stufe (22) einen Operationsverstärker (40) und einen Widerstand (42) umfasst, wobei der Schaltungseingang mit dem invertierenden Eingang des Operationsverstärkers verbunden ist, der Widerstand zwischen Ausgang des Operationsverstärkers und invertierenden Eingang des Operationsverstärkers gegengekoppelt ist und der nicht invertierende Eingang des Operationsverstärkers mit Masse bzw. einem Masseanschluss verbunden ist. Stromzählschaltung nach einem der Ansprüche 2 oder 3, wobei die Span- nungs-Strom-Wandler-Stufe (24) einen Widerstand (46), an dem die erste Spannung abfällt, oder einen im linearen Bereich betriebenen Halbleiterschalter, insbesondere einen Metalloxid-Feldeffekttransistor, an dessen Steueranschluss die erste Spannung anliegt, aufweist. Stromzählschaltung nach einem der Ansprüche 2 bis 4, wobei die Integrier- Stufe (26) einen Kondensator (48) umfasst, in dem die Speicherladung gespeichert wird, wobei die zweite Spannung als Spannung an dem Kondensator gegeben ist; oder wobei die Integrier-Stufe einen Kondensator, in dem die Speicherladung gespeichert wird, und einen Operationsverstärker umfasst, der insbesondere über den Kondensator gegengekoppelt ist, wobei die zweite Spannung als Spannung am Ausgang des Operationsverstärkers gegeben ist. Stromzählschaltung nach einem der Ansprüche 2 bis 5, wobei die Vergleichs- und Entlade-Stufe (28) einen Komparator (50) umfasst, der dazu eingerichtet ist, die zweite Spannung mit der Vergleichsspannung zu verglei- chen und das Zählsignal an einem Ausgang zu erzeugen, wobei der Ausgang weiterhin mit einem Schaltelement (54) verbunden ist, das bei Vorliegen des Zählsignals in einen leitenden Zustand geschaltet wird und dazu eingerichtet ist, im leitenden Zustand die Speicherladung zu entladen.

7. Summationsschaltung (60) zur Summenbildung von Teilsummen von Vektor- Matrixoperationen, umfassend eine Matrixoperationsschaltung (61), die mehrere Zeilenleitungen (661, 662, ... 66M) mit jeweils einem Spannungsanschluss (70i, 7O2, ... 70M) und mehrere Spaltenleitungen (681, 682, ... 68N) mit jeweils einem Stromausgang (72i, 722, ... 72N) aufweist und die dazu eingerichtet ist, an den Stromausgängen der mehreren Spaltenleitungen Ströme zu erzeugen, deren Stromstärken eine Funktion von an den Spannungsanschlüssen anliegenden Spannungen sind; eine oder mehrere Stromzählschaltungen (62i, 622, ... 62L) gemäß einem der vorstehenden Ansprüche, wobei jede Stromzählschaltung einer jeweiligen Gruppe von Spaltenleitungen, die eine Anzahl von Spaltenleitungen umfasst, zugeordnet ist, wobei die Stromausgänge der Spaltenleitungen innerhalb einer Gruppe mit dem Stromeingang der Stromzählschaltung, die der Gruppe zugeordnet ist, verbunden sind.

8. Summationsschaltung nach Anspruch 7, wobei für jede Spaltenleitung in der Verbindung zwischen dem Stromausgang der jeweiligen Spaltenleitung und dem Schaltungseingang der Stromzählschaltung, die der Gruppe, in der die jeweilige Spaltenleitung eingeschlossen ist, zugeordnet ist, ein Halbleiterschaltelement, insbesondere ein Feldeffekt-Transistor, vorgesehen ist, das die Verbindung zwischen einem leitenden und einem nichtleitenden Zustand hin und her schalten kann.

9. Summationsschaltung nach Anspruch 7 oder 8, wobei die Matrixoperationsschaltung (61) mehrere matrixförmig in Zeilen und Spalten angeordnete jeweils mit einer Spaltenleitung und einer Zeilenleitung verbundene Speicherelemente (64i,i , ... 64M, N) aufweist, - 26 - wobei jedes der Speicherelemente dazu eingerichtet ist, einen Strom in die zugehörige Spaltenleitung zu leiten, der von der an der jeweiligen Zeilenleitung anliegenden Spannung und einem Speicherzustand des Speicherelements abhängig ist.

10. Verfahren zum Betreiben einer Summationsschaltung nach einem der Ansprüche 7 bis 9, wobei die Zählsumme jeder der Stromzählschaltungen auf Null gesetzt wird (102), ein oder mehrere Vektoren von mehreren Spannungen jeweils für eine vorbestimmte Zeitdauer an die Spannungsanschlüsse angelegt werden (104), und die Zählsummen ausgelesen werden (106).

11. Verfahren nach Anspruch 10, falls eine Summationsschaltung, die die Merkmale von Anspruch 8 umfasst, verwendet wird, wobei während der jeweiligen Zeitdauer, in der einer der Vektoren von mehreren Spannungen angelegt ist, für jede Gruppe von Spaltenleitungen genau eines der Halbleiterschaltelemente, die in den Verbindungen von den Spaltenleitungen der Gruppe zu der zugeordneten Stromzählschaltung vorgesehen sind, in den leitenden Zustand geschaltet wird, wobei für unterschiedliche Vektoren von mehreren Spannungen unterschiedliche Halbleiterelemente in den leitenden Zustand geschaltet werden.

12. Verfahren nach einem der Ansprüche 10 oder 11 , wobei die Zeitdauer so gewählt wird, dass jede der Zählsummen größer als eine Mindest- Zählsumme ist, wobei die Mindest-Zählsumme mindestens 20, bevorzugt mindestens 50, weiter bevorzugt mindestens 100, beträgt.

13. Verfahren nach einem der Ansprüche 10 bis 12, wobei nach dem Auslesen der Zählsummen jeweils ein Rest der Abrundung des integrierten Eingangsstroms auf die Zählsumme bestimmt wird (108). - 27 -

14. Verfahren nach Anspruch 13, wobei der Rest durch Messen der restlichen Speicherladung und unter Berücksichtigung der Proportionalität zwischen Maximalspeicherladung und Ladungsmaßeinheit bestimmt wird.

15. Verfahren nach Anspruch 13, wobei, vor dem Nullsetzen der Zählsummen ein Vektor von mehreren Referenzspannungen und eine Referenzzeitdauer so bestimmt werden (100), dass ein Anlegen der Referenzspannungen über die Referenzzeitdauer an die Spannungsanschlüsse Ströme an den Stromausgängen erzeugt, die über die Referenzzeitdauer integriert einer Referenzladung entsprechen, die ein Bruchteil der Einheitsladung der jeweiligen Stromzählschaltung ist; und, nach dem Auslesen der Zählsummen, in mehreren Durchgängen Folgendes durchgeführt wird:

Anlegen (110) der Referenzspannung über die Referenzzeitdauer an die Spannungsanschlüsse,

Prüfen (112), für jede der Stromzählschaltungen, die vom Prüfen noch nicht ausgeschlossen wurde, ob sich die jeweilige Zählsumme geändert hat, und, wenn sich die Zählsumme geändert hat, Ausschließen der jeweiligen Stromzählschaltung vom Prüfen und Bestimmen des jeweiligen Restes basierend auf der Anzahl der durchgeführten Durchgänge, wobei bevorzugt der Rest bestimmt wird als Einheitsladung minus die Referenzladung multipliziert mit der Anzahl der vor dem jetzigen Durchgang durchgeführten Durchgänge.

16. Recheneinheit (82), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 10 bis 15 durchzuführen.

17. Rechenmodul (80), das eine Summationsschaltung (60) nach einem der Ansprüche 7 bis 9 und eine Recheneinheit (82) nach Anspruch 16 umfasst.

Description:
Beschreibung

Stromzählschaltung für eine Matrixoperationsschaltung, Summationsschaltung und Verfahren zu deren Betreib

Die vorliegende Erfindung betrifft eine Stromzählschaltung für eine Matrixoperationsschaltung, eine Summationsschaltung, ein Verfahren zum Betreiben der Summationsschaltung sowie eine Recheneinheit und ein Rechenmodul zu dessen Durchführung.

Stand der Technik

In vielen rechenintensiven Aufgaben, insbesondere bei Künstliche-Intelligenz- Anwendungen bzw. bei Anwendungen des maschinellen Lernens, ist eine Verarbeitung von Vektoren mittels Matrixoperationen notwendig. Beispielsweise müssen Vektor-Matrix-Multiplikationen durchgeführt werden. Um solche Matrix- Operationen schnell und effizient durchzuführen, können Vektor-Matrix- Multiplizierer in Form eigens dafür vorgesehener elektronischer Schaltungen verwendet werden.

In diesen Vektor-Matrix-Multiplizierern, die auch als "Dot-Product-Engines" bezeichnet werden, wird ein Vektor von Eingangsspannungen mittels einer matrix- förmigen Anordnung von Memristoren, die an Kreuzungspunkten von orthogonal zueinander verlaufenden Leitungen angeordnet sind und die die sich kreuzenden Leitungen paarweise verbinden, in einen Vektor von Ausgangsspannungen gewandelt, wobei die Ausgangsspannungen jeweils proportional zum Skalarprodukt (englisch "dot product") des Vektors der Eingangsspannungen mit den Leitfähigkeiten der in einer Spalte angeordneten Memristoren sind. Die Eingangsspannungen werden dabei an die in eine Richtung verlaufenden Zeilenleitungen angelegt und führen zu Strömen über die Memristoren in die dazu orthogonal verlau- fenden Spaltenleitungen, deren Potential auf Masse liegt. Die Ströme können mittels Transimpedanzverstärkern in die Ausgangsspannungen gewandelt werden, die durch Analog-Digital-Wandler in entsprechende digitale Werte gewandelt werden. Solche Schaltungen können Größen von jeweils einigen 100 Zeilen und Spalten erreichen.

Offenbarung der Erfindung

Erfindungsgemäß werden eine Stromzählschaltung für eine Matrixoperations- schaltung, eine Summationsschaltung, ein Verfahren zum Betreiben der Summationsschaltung sowie eine Recheneinheit und ein Rechenmodul zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.

Gemäß der Erfindung wird durch die Stromzählschaltung ein Ausgangsstrom einer Matrixoperationsschaltung zeitlich integriert, wobei das Integral, d.h. die gesamte geflossene Ladung, in einer Ladungsmaßeinheit gezählt wird, die proportional zu einer vorbestimmten Maximalspeicherladung einer in der Stromzählschaltung gespeicherten Speicherladung ist. Durch das Bereitstellen eines Massepotentials am Schaltungseingang, insbesondere in Form einer virtuellen Masse, wird die korrekte Funktionsweise der Matrixoperationsschaltung gewährleistet. Die zeitliche Integration ist vorteilhaft, da dadurch die Addition mehrerer, unterschiedlicher Ausgangsstromvektoren, die verschiedenen Eingangsspannungsvektoren entsprechen, ermöglicht wird.

Als Matrixoperationsschaltung wird hier eine Schaltung bezeichnet, die mehrere Ausgangsströme (Ausgangsvektor bzw. Ausgangsstromvektor) erzeugt, die von mehreren Eingangsspannungen (Eingangsvektor bzw. Eingangsspannungsvektor) abhängig sind, so dass im Prinzip eine Vektor-Matrix-Operation durchgeführt wird, bei der der Eingangsvektor auf den Ausgangsvektor abgebildet wird. Ma- trixeinträge, die diese Abbildung bestimmen, können in matrixförmig angeordneten Speicherelementen gespeichert werden. Es sind Zeilenleitungen, an denen die Eingangsspannungen angelegt werden, und Spaltenleitungen mit Stromaus- gängen, an denen die Ausgangsströme erzeugt werden, vorgesehen. Die Zählschaltung ermöglicht also, verschiedene Eingangsvektoren zu verschiedenen aufeinanderfolgenden Zeitpunkten jeweils über eine Zeitdauer anzulegen und die damit erhaltenen verschiedenen Ausgangsvektoren aufzusummieren.

Die Ladungsmaßeinheit ist indirekt über die Maximalspeicherladung definiert, so dass ihr numerischer Wert, z.B. in Coulomb, nicht bekannt zu sein braucht; er kann jedoch in einfacher Weise über die Proportionalität bestimmt werden, falls gewünscht.

Bevorzugt umfasst die Stromzählschaltung eine Strom-Spannungs-Wandler- Stufe, die mit dem Schaltungseingang verbunden ist und die dazu eingerichtet ist, das Massepotential am Schaltungseingang bereitzustellen und einen Eingangsstrom am Schaltungseingang in eine dazu proportionale erste Spannung zu wandeln; eine Spannung-Strom-Wandler-Stufe, die dazu eingerichtet ist, die erste Spannung in einen dazu proportionalen Ladestrom zu wandeln; eine Integrier-Stufe, die dazu eingerichtet ist, die Speicherladung zu speichern und eine zur Speicherladung proportionale zweite Spannung bereitzustellen, wobei der Ladestrom der Integrier-Stufe zur Erhöhung der Speicherladung zugeführt wird; eine Vergleichs- und Entlade-Stufe, die dazu eingerichtet ist, die zweite Spannung mit einer Vergleichsspannung zu vergleichen, die so vorbestimmt ist, dass, wenn die zweite Spannung gleich der Vergleichsspannung ist, die Speicherladung der Maximalspeicherladung entspricht, und, wenn die zweite Spannung die Vergleichsspannung überschreitet, die in der Integrier-Stufe Speicherladung zu entladen und ein Zählsignal zu erzeugen; und eine Zählstufe, die dazu eingerichtet ist, die Zählsumme zu speichern und, wenn das Zählsignal erzeugt wird, die Zählsumme zu inkrementieren bzw. um Eins zu erhöhen. Diese Ausführung durch im Wesentlichen in Reihe geschaltete einzelne Stufen ermöglicht eine einfache Implementierung durch elementare Schaltungen für jede der Stufen, wobei Eigenschaften der Zählschaltung durch Änderung der Eigenschaften einzelner Stufe einfach durchgeführt werden können. Die Proportionalität (bzw. Proportionalitätskonstante) zwischen Ladungsmaßeinheit und Maximalspeicherladung, d.h. zwischen integriertem Eingangsstrom und Speicherladung, ist durch die kombinierte Proportionalität von Strom-Spannungs-Wandler-Stufe und Spannungs-Strom- Wandler-Stufe gegeben, d.h. als Produkt der jeweiligen Proportionalitätskonstanten.

Eine erfindungsgemäße Summationsschaltung zur Summenbildung von Teilsummen (bzw. Teilvektoren) von Vektor-Matrix-Operationen umfasst eine Mat- rixoperationsschaltung, die mehrere Zeilenleitungen mit jeweils einem Spannungsanschluss und mehrere Spaltenleitungen mit jeweils einem Stromausgang aufweist und die dazu eingerichtet ist, an den Stromausgängen der mehreren Spaltenleitungen Ströme zu erzeugen, deren Stromstärken eine Funktion von an den Spannungsanschlüssen anliegenden Spannungen sind, und eine oder mehrere erfindungsgemäße Stromzählschaltungen, wobei jede Stromzählschaltung einer Gruppe von Spaltenleitungen, die eine Anzahl von Spaltenleitungen umfasst, zugeordnet ist, wobei die Stromausgänge der Spaltenleitungen innerhalb einer Gruppe mit dem Stromeingang der Stromzählschaltung, die der Gruppe zugeordnet ist, verbunden sind. Indem erfindungsgemäße Stromzählschaltungen an den Stromausgängen der Matrixoperationsschaltung vorgesehen sind, kann auf Analog-Digital-Wandler für jeden der Stromausgänge bzw. jede der Spalten verzichtet werden. Weiter wird ermöglicht, aufeinanderfolgend verschiedene Eingangsspannungsvektoren anzulegen und die jeweiligen Ausgangsvektoren durch die Stromzählschaltungen zu addieren. Wären gesonderte Analog-Digital- Wandler vorgesehen, müssten die jeweiligen gewandelten digitalen Ausgangsvektoren separat addiert werden.

Bevorzugt ist in der Summationsschaltung für jede Spaltenleitung in der Verbindung zwischen dem Stromausgang der jeweiligen Spaltenleitung und dem Schaltungseingang der Stromzählschaltung, die der Gruppe, in der die jeweilige Spaltenleitung umfasst ist, zugeordnet ist, ein Halbleiterschaltelement, insbesondere ein Feldeffekt-Transistor, vorgesehen, das die Verbindung zwischen einem leitenden und einem nichtleitenden Zustand hin und her schalten kann. Auf diese Weise kann in jeder Gruppe gezielt jeweils eine Spaltenleitung zu der jeweiligen Stromzählschaltung durchgeschaltet werden, wobei, wenn mehrere Spannungsvektoren aufeinanderfolgend angelegt werden, jeweils eine andere Spaltenleitung in der Gruppe ausgewählt werden kann, so dass durch die Stromzählschaltung, die der Gruppe zugeordnet ist, die Teilsummen aufaddiert werden. Vekto- ren bzw. Matrizen, die für die Matrixoperationsschaltung zu groß sind (d.h. mehr Einträge bzw. Zeilen aufweisen als die Matrixoperationsschaltung Zeilen hat) können so in Teile zerlegt und verarbeitet werden.

Bevorzugt weist die Matrixoperationsschaltung der Summationsschaltung mehrere matrixförmig in Zeilen und Spalten angeordnete jeweils mit einer Spaltenleitung und einer Zeilenleitung verbundene Speicherelemente auf, wobei jedes der Speicherelemente dazu eingerichtet ist, einen Strom in die zugehörige Spaltenleitung zu leiten, der von der an der jeweiligen Zeilenleitung anliegenden Spannung und einem Speicherzustand des Speicherelements abhängig ist. Durch den Speicherzustand der Speicherelemente können einzelne Matrixelemente realisiert und durch Neu-Programmieren (d.h. Ändern) der Speicherzustände geändert werden. Z.B. können so Matrixmultiplikationen realisiert werden.

In einem erfindungsgemäßen Verfahren zum Betreiben einer erfindungsgemäßen Summationsschaltung wird die Zählsumme jeder der Stromzählschaltungen auf Null gesetzt, werden ein oder mehrere Vektoren von Spannungen jeweils für eine vorbestimmte Zeitdauer an die Spannungsanschlüsse angelegt, und werden die Zählsummen ausgelesen. Es wird also, sozusagen automatisch, eine Summation von mehreren Ausgangsvektoren vorgenommen, wobei die Ausgangsvektoren erhalten werden, indem mehrere Eingangsvektoren durch die Matrixoperationsschaltung auf die Ausgangsvektoren abgebildet werden.

In dem Verfahren wird, falls eine Summationsschaltung, die Halbleiterschaltelemente umfasst, verwendet wird, bevorzugt während der jeweiligen Zeitdauer, in der einer der Vektoren von mehreren Spannungen angelegt ist, für jede Gruppe von Spaltenleitungen genau eines der Halbleiterschaltelemente, die in den Verbindungen von den Spaltenleitungen (bzw. deren Stromausgängen) der Gruppe zu der zugeordneten Stromzählschaltung vorgesehen sind, in den leitenden Zustand geschaltet, wobei für unterschiedliche Vektoren von mehreren Spannungen unterschiedliche Halbleiterelemente in den leitenden Zustand geschaltet werden. 'Genau eines' ist im üblichen Sinn zu verstehen, d.h. in jeder Gruppe wird ein Halbleiterschaltelement in den leitenden Zustand geschaltet und die anderen Halbleiterschaltelemente in der Gruppen werden in den nichtleitenden Zu- stand geschaltet. Das jeweils ausgewählte 'genau eine Halbleiterschaltelement' wird also zwischen den Zeitdauern, d.h. wenn ein neuer Spannungsvektor angelegt wird, geändert. So können, wie oben beschrieben große Vektoren bzw. Matrizen verarbeitet werden, indem Teilsummen durch die Stromzählschaltungen aufaddiert werden.

Bevorzugt wird die Zeitdauer so gewählt, dass jede der Zählsummen größer als eine Mindest-Zählsumme ist, wobei die Mindest-Zählsumme mindestens 20, bevorzugt mindestens 50, weiter bevorzugt mindestens 100, beträgt. Rundungsfehler durch die Stromzählschaltungen können so klein gehalten werden.

Alternativ oder zusätzlich kann bevorzugt nach dem Auslesen der Zählsummen jeweils ein Rest der Abrundung des integrierten Eingangsstroms auf die Zählsumme bestimmt werden. Eine bevorzugte Möglichkeit hierfür ist, den Rest durch Messen der restlichen Speicherladung und unter Berücksichtigung der Proportionalität zwischen Maximalspeicherladung und Ladungsmaßeinheit zu bestimmen. Durch das Messen der restlichen Ladungen kann der Rest sehr genau bestimmt werden.

Bei einer anderen bevorzugten Möglichkeit zur Bestimmung des Restes bzw. der Reste umfasst das Verfahren, dass vor dem Nullsetzen der Zählsummen ein Vektor von Referenzspannungen und eine Referenzzeitdauer so bestimmt werden, dass ein Anlegen der Referenzspannungen über die Referenzzeitdauer an die Spannungsanschlüsse Ströme an den Stromausgängen erzeugt, die über die Referenzzeitdauer integriert einer Referenzladung entsprechen, die ein Bruchteil der Einheitsladung der jeweiligen Stromzählschaltung ist; und dass nach dem Auslesen der Zählsummen in mehreren Durchgängen die Referenzspannung über die Referenzzeitdauer an die Spannungsanschlüsse angelegt wird, geprüft wird, für jede der Stromzählschaltungen, die vom Prüfen noch nicht ausgeschlossen wurde, ob sich die jeweilige Zählsumme geändert hat, und, wenn sich die Zählsumme geändert hat, die jeweilige Stromzählschaltung vom Prüfen ausgeschlossen wird und der jeweilige Rest basierend auf der Anzahl der durchgeführten Durchgänge bestimmt wird, wobei weiter bevorzugt der Rest bestimmt wird als Einheitsladung minus die Referenzladung multipliziert mit der Anzahl der vor dem jetzigen Durchgang durchgeführten Durchgänge. Die Genauigkeit ist hier vom gewählten Bruchteil abhängig. Vorteilhaft ist hier insbesondere, dass auf Analog-Digital-Wandler, die restliche Speicherladung in digitale Messwerte wandeln, verzichtet werden kann, es sind also keine zusätzlichen Bauelemente zur Summationsschaltung notwendig. Wird eine Summationsschaltung mit Halbleiterschaltelementen und in Gruppen eingeteilten Spaltenleitungen verwendet, so sollte während der Durchführung dieser Verfahrensschritte zur Restbestimmung in jeder Gruppe ein Halbleiterschaltelement oder mehrere Halbleiterschaltelemente in den leitenden Zustand geschaltet werden, wobei dies bei verschiedenen Schritten der Restbestimmung immer dasselbe ist bzw. dieselben sind.

Eine erfindungsgemäße Recheneinheit ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.

Ein erfindungsgemäßes Rechenmodul, z.B. ein Neuronales-Netz-Rechenmodul bzw. Künstliche-Intelligenz-Beschleunigermodul, umfasst eine erfindungsgemäße Summationsschaltung und eine erfindungsgemäße Recheneinheit.

Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn eine ausführende Recheneinheit noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.

Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben. Soweit nichts anderes vermerkt ist, bezieht sich im Rahmen dieser Anmeldung der Begriff "verbunden", o.ä., auf eine elektrisch leitende Verbindung, d.h. ist im Sinne von "elektrisch leitend verbunden" zu verstehen.

Kurze Beschreibung der Zeichnungen

Figuren 1A und 1 B zeigen einen nicht-erfindungsgemäßen Vektor-Matrix- Multiplizierer;

Figur 2 zeigt die Struktur einer bevorzugten Stromzählschaltung gemäß der Erfindung;

Figur 3 zeigt eine Summationsschaltung gemäß einer bevorzugten Ausführungsform der Erfindung;

Figur 4 zeigt ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Summationsschaltung gemäß einer bevorzugten Ausführungsform der Erfindung.

Figur 5 zeigt ein Ablaufdiagramm eines Verfahrens zum Betreiben einer Summationsschaltung gemäß einer weiteren bevorzugten Ausführungsform der Erfindung.

Figur 6 zeigt ein Rechenmodul gemäß einer bevorzugten Ausführungsform der Erfindung.

Ausführungsform(en) der Erfindung

Die Figuren 1A und 1 B stellen einen Vektor-Matrix-Multiplizierer, auch als "dot Produkt engine" bezeichnet, dar, in welchem erfindungsgemäße Stromzählschaltungen eingesetzt werden können. Der Vektor-Matrix-Multiplizierer umfasst in Zeilen und Spalten matrixförmig angeordnete Speicherzellen in Form von Mem- ristoren 2. Die Anzahl von Zeilen und die Anzahl von Spalten sind jeweils beliebig, wobei exemplarisch eine 4x4-Anordnung dargestellt ist. Die Speicherfunktion der Memristoren ergibt sich daraus, dass der Widerstand der Memristoren durch Anlegen einer Programmierspannung einstellbar ist.

Der Vektor-Matrix-Multiplizierer umfasst weiterhin für jede Zeile der matrixförmi- gen Anordnung eine Zeilenleitung 4 und für jede Spalte eine Spaltenleitung 6 (wobei der Übersichtlichkeit halber jeweils nur einige Elemente mit Bezugszeichen versehen sind). Die Memristoren 2 sind an den Kreuzungspunkten der zueinander senkrecht verlaufenden Zeilen- und Spaltenleitungen angeordnet und verbinden jeweils eine Zeilenleitung mit einer Spaltenleitung, die anderweitig nicht verbunden sind.

Werden an die Zeilenleitungen Spannungen angelegt, so fließen Ströme von den Zeilenleitungen 4 durch die Memristoren 2 in die Spaltenleitungen 6. Dies ist für eine Spalte und zwei Zeilen in Figur 1 B illustriert. Dort wird an eine der Zeilenleitungen eine Spannung U1 angelegt und an die andere eine Spannung U2. Der Strom 11 durch einen der Memristoren wird durch dessen Leitfähigkeit G1 bestimmt: 11 = G1 ■ U1 ; der Strom I2 durch den anderen Memristor, dessen Leitfähigkeit G2 ist, ist entsprechend I2 = G2 ■ U2. Durch die Spaltenleitung 6 fließt dann die Summe der Ströme, d.h. der Gesamtstrom I = 11 + I2 = G1 ■ U1 + G2 ■ U2. Es findet also eine Multiplikation der als Vektor aufgefassten Spannungen U1 , U2 an den Zeilenleitungen 4 mit den als Vektor aufgefassten Leitfähigkeiten G1 , G2 der Memristoren in einer Spalte statt, wobei der Gesamtstrom proportional zum Ergebnis dieses Vektorprodukts ist. Bezogen auf die gesamte Matrixan- ordnung findet also im Prinzip eine Multiplikation des Vektors der Spannungen mit den als Matrixelemente aufgefassten Leitfähigkeiten der Memristoren statt.

Die Spannungen an den Zeilenleitungen werden typischerweise aus digitalen Signalen mittels Digital-Analog-Wandlern 14 erzeugt. Der Gesamtstrom jeder Spalte, der ein Ausgangsstrom der Spaltenleitung ist, kann mittels eines Transimpedanzverstärkers in eine Ausgangspannung gewandelt werden. Die Ausgangsspannungen werden üblicherweise an den Spaltenleitungen mittels Abtast- Halte-Gliedern 16 (Sample-and-Hold-Schaltungen) und einem Analog-Digital- Wandler 18 wieder in ein digitales Signal umgesetzt. Figur 2 stellt eine Zählschaltung 20 gemäß einer bevorzugten Ausführungsform der Erfindung dar. Die Zählschaltung umfasst mehrere in Reihe geschaltete Funktionseinheiten, nämlich eine Strom-Spannungs-Wandler-Stufe 22, eine Spannungs-Strom-Wandler-Stufe 24, eine Integrier-Stufe 26, eine Vergleichsund Entlade-Stufe 28 und eine Zählstufe 30. Die Zählschaltung 20 weist weiterhin einen Schaltungseingang 32 und einen Schaltungsausgang 34 auf.

Die Strom-Spannungs-Wandler-Stufe 22 ist mit dem Schaltungseingang 32 verbunden und dazu eingerichtet, einen Eingangsstrom am Schaltungseingang 32 in eine dazu proportionale erste Spannung zu wandeln. Der Eingangsstrom ist ein Ausgangsstrom einer Matrixoperationsschaltung, etwa der in den Figuren 1A, 1B oder 3 dargestellten. Die Strom-Spannungs-Wandler-Stufe 22 kann, wie gezeigt, als sogenannter Transimpedanzverstärker gebildet werden, der einen Operationsverstärker 40 und einen Widerstand 42 umfasst, wobei der invertierende Eingang (mit "-" gekennzeichnet) des Operationsverstärkers 40 mit dem Schaltungseingang 32 verbunden ist und über den Widerstand 42 mit dem Ausgang des Operationsverstärkers 40 gegengekoppelt ist. Der nicht-invertierende Eingang (mit "+" gekennzeichnet) des Operationsverstärkers 40 ist mit einem Bezugspotential 36, etwa einer Masse, verbunden, z.B. über einen nicht weiter dargestellten (Masse-)Anschluss. Mit dieser Schaltung ist die Proportionalitätskonstante zwischen Strom und erster Spannung durch den Widerstandswert des Widerstands 42 gegeben. Dabei wird durch den hohen Verstärkungsfaktor des Operationsverstärkers (d.h. die Spannung am Ausgang des Operationsverstärkers ist ein hohes Vielfaches, z.B. 100.000, der Spannungsdifferenz an den Eingängen des Operationsverstärkers) die Spannung am invertierenden Eingang im Wesentlichen auf das Bezugspotential, d.h. auf Masse, gezogen. "Im Wesentlichen" ist hier so zu verstehen, dass (für bei Matrixoperationsschaltungen üblichen Strömen) die Spannungsdifferenz weniger als ein Millivolt, insbesondere nur einen Bruchteil eines Millivolts, beträgt, z.B. kleiner 0,1 mV), so dass der Schaltungseingang 32 aus Sicht einer Matrixoperationsschaltung (in der Betriebsspannung von einigen Volt vorliegen), mit der der Schaltungseingang 32 verbunden wird (siehe Figur 3), schaltungstechnisch und messtechnisch auf Masse bzw. auf Massepotential liegt. Diese "Masse" am invertierenden Eingang des Operationsverstärkers 40 bzw. am Schaltungseingang wird auch als "virtuelle Masse" bezeichnet.

Der durch den Ausgang des Operationsverstärkers 40 gebildete Ausgang der Strom-Spannungs-Wandler-Stufe 22 ist mit der Spannungs-Strom-Wandler-Stufe 24 verbunden, die dazu eingerichtet ist, die dort anliegende (erste) Spannung in einen dazu proportionalen Storm, im Weiteren als Ladestrom bezeichnet, da er zum Laden einer in der Integrier-Stufe 24 gespeicherten Ladung (der Speicherladung) dient, zu wandeln. Im einfachsten Fall, kann dies, wie dargestellt, durch einen Widerstand 46 erfolgen. Alternativ kann ein Halbleiterschalter wie z.B. Feldeffekttransistor (FET), bevorzugt ein Metalloxid-Feldeffekttransistor (MOSFET), der im linearen Bereich betrieben wird, verwendet werden.

Der Ladestrom wird zur Integrier-Stufe 24 geleitet, die dazu eingerichtet ist, eine elektrische Ladung zu speichern, die als Speicherladung bezeichnet wird, und eine zur gespeicherten Speicherladung proportionale zweite Spannung zu erzeugen bzw. bereitzustellen. Die Speicherladung wird durch den Ladestrom erhöht. Im einfachsten Fall, wie dargestellt, wird zur Speicherung der Speicherladung ein Kondensator 48 verwendet; die zweite Spannung ist dann die Spannung an dem Kondensator, d.h. die Kondensatorspannung. Ein (erster) Anschluss des Kondensators 48 ist mit Strom-Spannungs-Wandler-Stufe 22 verbunden (über einen nicht explizit dargestellten Eingang der Integrier-Stufe 24) und der andere (zweite) Anschluss des Kondensators 48 ist mit dem Bezugspotential (Masse) 36 verbunden. Der erste Anschluss des Kondensators 48 ist ebenso mit dem Ausgang (nicht explizit dargestellt) der Integrier-Stufe 36 verbunden, so dass die Kondensatorspannung dort anliegt und proportional zur im Kondensator gespeicherten Ladung ist, d.h. die zweite Spannung bildet.

Entsprechend einer anderen, nicht dargestellten Ausführungsform kann die Integrier-Stufe 24 einen Kondensator und einen Operationsverstärker umfassen, der über den Kondensator rückgekoppelt ist, d.h. der Kondensator ist zwischen den Ausgang des Operationsverstärkers und den invertierenden Eingang des Operationsverstärkers geschaltet. Bei dieser Ausführungsform dient der invertierende Eingang des Operationsverstärkers als Eingang der Integrier-Stufe 26, d.h. als Anschluss für den Ladestrom; der nicht-invertierende Eingang des Operationsverstärkers ist mit dem Bezugspotential (Masse) verbunden und der Ausgang des Operationsverstärkers dient als Ausgang der Integrier-Stufe 26, d.h. hier liegt die zweite Spannung an. Vorteil dieser Ausführungsform gegenüber der einfacheren, dargestellten Ausführungsform ist, dass ein Kondensator mit geringerer Kapazität verwendet werden kann.

Die zweite Spannung dient als Eingangssignal für die Vergleichs- und Entlade- Stufe 28 (entsprechende Ein- und Ausgänge sind in der Figur nicht explizit bezeichnet). Die Vergleichs- und Entlade-Stufe 28 ist dazu eingerichtet, die an ihrem Eingang anliegende zweite Spannung (die hier gleich der Kondensatorspannung ist) mit einer Vergleichsspannung zu vergleichen und, wenn die zweite Spannung die Vergleichsspannung überschreitet, ein Zählsignal zu erzeugen und die in der Integrier-Stufe 26 gespeicherte Ladung zu entladen. Für den Vergleich der Spannungen kann ein Komparator 50 verwendet werden, wobei der nichtinvertierende Eingang (mit "+" gekennzeichnet) mit dem Eingang der Vergleichsund Entladeschaltung 28 verbunden ist (d.h. es liegt dort die zweite Spannung an) und der invertierende Eingang (mit "-" gekennzeichnet) mit einer Konstant- Spannungsquelle 52 verbunden ist, die die Vergleichsspannung erzeugt (und die selbst wiederum mit dem Bezugspotential 36 verbunden ist, so dass die Vergleichsspannung gegenüber diesem erzeugt wird). Die Konstant-

Spannungsquelle kann, wie dargestellt, Teil der Vergleichs- und Entlade-Stufe 28 sein. Bevorzugt ist jedoch, dass (nicht dargestellt) die Vergleichsspannung der Vergleichs- und Entlade-Stufe von außen bereitgestellt wird, d.h. die Konstant- Spannungsquelle ist dann kein Bestandteil der Vergleichs- und Entlade-Stufe 28. Insbesondere kann dann auch eine einzige Vergleichsspannung (die durch eine einzelne Konstant-Spannungsquelle bereitgestellt wird) als Vergleichsspannung für mehrere Vergleichs- und Entlade-Stufen, die in mehreren Stromzählschaltungen eingeschlossen sind, dienen.

Der Ausgang des Komparators 50 ist mit dem Steueranschluss eines Schaltelements 52, hier ein Halbleiterschaltelement, insbesondere ein Feldeffekttransistor (FET), bevorzugt ein Metalloxid-Feldeffekttransistor, verbunden. Der Komparator 50 ist eingerichtet (d.h. entsprechend ausgewählt), eine Spannung an seinem Ausgang zu erzeugen, die in einem ersten Bereich (z.B. kleiner oder gleich 0V) liegt, in dem sich das Schaltelement 52 in einem offenen Zustand befindet (nicht leitender Zustand, FET sperrt), wenn die Spannung am nicht-invertierenden Eingang kleiner als die Spannung am invertierenden Eingang ist, und eine Spannung an seinem Ausgang zu erzeugen, die in einem zweiten Bereich (z.B. größer OV, insbesondere größer als die Schwellenspannung des FET) liegt, in dem sich das Schaltelement 52 in einem geschlossen Zustand befindet (leitender Zustand, FET leitet), wenn die Spannung am nicht-invertierenden Eingang größer als die Spannung am invertierenden Eingang ist. Das Schaltelement 54 ist so mit der Integrier-Stufe 26 verbunden, dass, wenn es sich im nicht leitenden Zustand befindet, die Speicherladung durch den Ladestrom geladen werden kann, und, wenn es sich im leitenden Zustand befindet, die Speicherladung zur Masse (Bezugspotential) entladen wird.

Das Schaltelement 54 ist in der Ausführungsform der Figur 3 einerseits mit einem Anschluss (z.B. mit dem Drain-Anschluss des FET) mit dem Eingang der Vergleichs- und Entladeschaltung und andererseits mit einem Anschluss (z.B. mit dem Source-Anschluss des FET) mit dem Bezugspotential 36 verbunden. Die Strecke zwischen diesen beiden Anschlüssen kann über den Steueranschluss zwischen einem nicht leitenden Zustand (offener Zustand, FET sperrt) und einem leitenden Zustand (geschlossener Zustand, FET leitet) hin und her geschaltet werden. Sobald das Schaltelement 54 in den leitenden Zustand schaltet, d.h. sobald die zweite Spannung die Vergleichsspannung überschreitet, wird der Kondensator 48, dessen erster Anschluss mit dem Eingang der Vergleichs- und Entladeschaltung 28 verbunden ist, über das Schaltelement 54 entladen. Als Resultat fällt die Kondensatorspannung, d.h. die zweite Spannung, auf Null, wird also insbesondere wieder kleiner als die Vergleichsspannung.

Am Ausgang des Komparators 50 wird während dieses Vorgangs ein Spannungssignal, bei dem die Ausgangsspannung am Komparator kurzzeitig im zweiten Bereich liegt, erzeugt: zunächst, während des Anstiegs der zweiten Spannung (zweite Spannung < Vergleichsspannung), liegt die Ausgangsspannung im ersten Bereich; überschreitet die zweite Spannung die Vergleichsspannung, liegt die Ausgansspannung zwischenzeitlich im zweiten Bereich, wobei die Ladung entladen wird; durch das Entladen fällt die zweite Spannung wieder unter die Vergleichsspannung, so dass abschließend die Ausgangsspannung wieder im ersten Bereich liegt. Dieses Spannungssignal stellt das Zählsignal dar, das am Ausgang der Vergleichs- und Entlade-Stufe 28, der mit dem Ausgang des Komparators 50 verbunden ist, erzeugt wird.

Weiterhin ist eine Zählstufe 30 gezeigt, die eine Zählerschaltung 56 umfasst, mit der die Zählsumme gebildet wird, wobei die Zählsumme mit jedem Zählsignal um Eins erhöht wird. Solche Zählerschaltungen sind dem Fachmann bekannt, diese können z.B. mittels in Reihe geschalteter Flipflops gebildet werden. Das Ergebnis, d.h. die Zählsumme kann über den Schaltungsausgang 34, der mit der Zählstufe bzw. der Zählerschaltung verbunden ist, ausgelesen werden, etwa als digitaler Wert, entsprechend den jeweiligen Zuständen der Flipflops, wenn diese zur Realisierung der Zählerschaltung verwendet werden. Weiter ist vorzugsweise mindestens eine, nicht dargestellte Rücksetzleitung vorgesehen, mittels derer die in der Zählstufe bzw. der Zählerschaltung gebildete Zählsumme auf Null zurückgesetzt werden kann.

Da die in der Integrier-Stufe 26 (Kondensator 48) gespeicherte Ladung zur zweiten Spannung proportional ist, wird das Zählsignal genau dann erzeugt, wenn eine bestimmte, maximale Speicherladung, die als Maximalspeicherladung bezeichnet wird, in der Integrier-Stufe 26 gespeichert ist, d.h. wenn ein bestimmter integrierter Ladestrom in diese geflossen ist. Da der Ladestrom wiederum vermöge der vorstehend beschrieben Strom-Spannungs-Wandler-Stufe 22 und Spannungs-Strom-Wandler-Stufe 24 zum Eingangsstrom proportional ist, wird das Zählsignal genau dann erzeugt, wenn, seit dem letzten Entladen ein bestimmter zeitlich integrierter Eingangsstrom in die Stromzählschaltung geflossen ist, d.h. wenn eine bestimmte Ladungsmenge, die eine Ladungsmaßeinheit definiert, in die Stromzählschaltung geflossen ist. Die Ladungsmaßeinheit ist entsprechend so definiert, das sie über kombinierte Proportionalitätskonstante von Strom-Spannungs-Wandler-Stufe 22 und Spannung-Strom-Wandler-Stufe 24 mit der Maximalspeicherladung zusammenhängt. Der in die Stromzählschaltung geflossene integrierte Eingangsstrom, der eine Eingangsladungsmenge darstellt, wird also in Ladungsmaßeinheiten, die durch Vergleichsspannung (von der die Maximalspeicherladung abhängt) bestimmt sind, gezählt bzw. quantifiziert. Die Zählsumme ist jeweils die auf den nächsten ganzzahligen Wert abgerundete, in Ladungsmaßeinheiten quantifizierte Eingangsladungsmenge. Die Vergleichsspannung kann entsprechend gewählt werden, so dass die Ladungsmaßeinheit eine bestimmte Größe aufweist (z.B. in Coulomb). Der Kondensator 48 bzw. die Integrierstufe 26 muss entsprechend dimensioniert werden, dass er/sie eine der Ladungsmaßeinheit entsprechende (d.h. unter Berücksichtigung der Proportionalitätskonstanten von Strom-Spannungs-Wandler-Stufe 22 und Spannung-Strom- Wandler-Stufe 24 und unter Berücksichtigung der spezifischen Implementierung der Integrierstufe 26) Ladung speichern kann.

Figur 3 stellt eine Summationsschaltung 60 gemäß einer bevorzugten Ausführungsform der Erfindung dar. Die Summationsschaltung 60 umfasst eine Mat- rixoperationsschaltung 61 (z.B. wie in den Figuren 1A und 1 B gezeigt) und mehrere erfindungsgemäße Stromzählschaltungen 62i, 622, ... 62L. Es ist jeweils eine Stromzählschaltung einer Gruppe von Spaltenleitungen zugeordnet, wobei hier beispielhaft jede Gruppe zwei Spaltenleitungen umfasst und lediglich die erste Gruppe (mit Spaltenleitungen 72i und 722) vollständig gezeigt ist.

Die Matrixoperationsschaltung 61 weist mehrere matrixförmig in Zeilen (Anzahl M) und Spalten (Anzahl N) angeordnete Speicherelemente 64i,i , 64i ,2, ... 64I ,N, 642,1, 642,2, ... 642, N, ... 64N,I , 64N,2, ... 64M, N auf. Für jede Zeile ist eine Zeilenleitung 661, 662, ... 66M vorgesehen und für jede Spalte ist eine Spaltenleitung 681, 682, ... 68N vorgesehen. Die Speicherelemente sind jeweils mit einer Zeilenleitung und mit einer Spaltenleitung verbunden. Jedes Speicherelement weist einen Speicherzustand auf (z.B. in Form eines Leitwerts wie im Zusammenhang mit Figur 1A beschrieben) und ist eingerichtet, in der Spaltenleitung, mit der es verbunden ist, einen Strom zu erzeugen, der vom Speicherzustand und von der an der Zeilenleitung, mit der das Speicherelement verbunden ist, anliegenden Spannung abhängig ist. Insgesamt werden so an Stromausgängen 72i, 722, ... 72N der Spaltenleitungen Ströme erzeugt, die von mehreren an Spannungseingängen 70i, 7O2, ... 70M der Zeilenleitungen anliegenden Spannungen abhängig sind. Für die Funktion der Matrixoperationsschaltung 61 muss entsprechend an den Stromausgängen 72i , 722, ... 72N ein Bezugspotential (Masse) anliegen, auf das sich die an den Spannungseingängen 70i, 702, ... 70M anliegenden Spannungen beziehen. Die mehreren Spannungen an den Spannungseingängen können als Eingangsvektor (von Spannungen) bzw. Eingangsspannungsvektor bzw. Vektor von Eingangsspannungen angesehen werden. Die mehreren Ausgangsströme an den Stromausgängen können als Ausgangsvektor (von Strömen) bzw. Ausgangsstromvektor bzw. Vektor von Ausgangsströmen angesehen werden.

Die Speicherzustände der Speicherelemente entsprechen in etwa Matrixe inträgen, durch die die von der Matrixoperationsschaltung realisierte Abbildung der Eingangsvektoren auf Ausgangsvektoren bestimmt ist. Die Speicherelemente können z.B. durch Memristoren, wie im Zusammenhang mit den Figuren 1A, 1 B beschrieben, gebildet sein; der Speicherzustand ist dann durch den Leitwert der Memristoren bestimmt. Es sind aber auch andere Ausführungen denkbar, z.B. können die Speicherelemente neben den Memristoren jeweils ein Halbleiterschaltelement (etwa einen Feldeffekttransistor) umfassen, mit dem der jeweilige Memristor gezielt angesteuert werden kann. In diesem Fall sind weitere Steuerleitungen für die Halbleiterschaltelemente vorgesehen. Allgemeiner können für die jeweilige Ausführung der Speicherelemente notwendige weitere Leitungen vorgesehen sein.

Die Matrixoperationsschaltung 61 kann weiterhin für jede Zeile einen Digital- Analog-Wandler 74i, 742, ... 74M umfassen, deren Ausgänge jeweils mit einer Zeilenleitung bzw. mit einem Spannungseingang 70i, 7O2, ... 70M verbunden sind und deren Eingänge die Eingänge 75i , 752, ... 75M der Summationsschaltung 60 bilden. Die Digital-Analog-Wandler dienen dazu, aus in digitaler Form vorliegenden Eingangswerten bzw. Eingangsvektoren, z.B. einen Vektor von M Zahlenwerten, entsprechende Spannungen zu erzeugen, die an die Zeilenleitungen angelegt werden können. Auf Digital-Analog-Wandler kann auch verzichtet werden, wenn die Eingangsvektoren in analoger Form als Spannungen vorliegen; die Eingänge der Summationsschaltung sind dann direkt mit den Spannungseingängen der Matrixoperationsschaltung verbunden.

Die Stromzählschaltungen 62i, 622, ... 62L sind jeweils mit einer der Gruppen von Spaltenleitungen verbunden, d.h. der Schaltungseingang jeder der Stromzähl- Schaltungen 62i, 622, ... 62L ist mit den Stromausgängen 72i , 722, ... 72N derjenigen Spaltenleitungen verbunden, die in der Gruppe, welcher die jeweilige Stromzählschaltung zugeordnet ist, umfasst sind. Beispielsweise ist der Schaltungseingang der Stromzählschaltung 611 mit den Stromausgängen 72i und 722 der Spaltenleitungen 681 und 682, die eine Gruppe bilden, verbunden. Für die weiteren Stromzählschaltungen bzw. Spaltenleitungen ist dies analog der Fall (in der Figur nicht explizit dargestellt). In den Verbindungen zwischen den Stromausgängen und den Schaltungseingängen sind bevorzugt jeweils Halbleiterschaltelemente 78i , 782, ... 78N (hier beispielsweise Feldeffekt-Transistoren) vorgesehen, so dass jede der Verbindungen zwischen einem leitenden und einem nichtleitenden Zustand hin und her geschaltet werden kann. Steuerleitungen für die Halbleiterschaltelemente sind nicht weiter dargestellt. Durch die Halbleiterschaltelemente 78i , 782, ... 78N können einzelne Spaltenleitungen bzw. deren Stromausgänge gezielt ausgewählt und mit der entsprechenden Stromzählschaltung verbunden werden. Es ist also möglich, jeweils genau eine der Spaltenleitungen innerhalb jeder der Gruppen der Reihe nach mit der der jeweiligen Gruppe zugeordneten Stromzählschaltung zu verbinden. Durch die jeweilige Stromzählschaltung werden die Ströme, die im Prinzip die Ergebnisse eines Vektorprodukts repräsentieren, innerhalb der Gruppe aufaddiert. Auf diese Weise können Vektorprodukte von Vektoren berechnet werden, die mehr Einträge aufweisen als die Matrixoperationsschaltung Zeilen hat. Im dargestellten Beispiel, in dem jeweils zwei Spaltenleitungen mit einer Stromzählschaltung verbunden sind, d.h. eine Gruppe bilden, können entsprechend Vektorprodukte bzw. Vektor-Matrixprodukte von Vektoren mit der doppelten Anzahl von Einträgen, wie die Matrixoperationsschaltung Zeilen aufweist, berechnet werden. Jede Spalte der Matrix wird dabei in mehrere Teile (hier zwei) geteilt, wobei jeder Teil der Matrixspalte einer Spalte bzw. Spaltenleitung innerhalb einer Gruppe entspricht, d.h. die Speicherelemente in der jeweiligen Spalte (in der Gruppe) werden entsprechend der Matrixeinträge in dem jeweiligen Teil der Matrixspalte programmiert. Analog wird der Vektor, der mit der Matrix multipliziert werden soll, in mehrere Teile aufgeteilt, die der Reihe nach an die Eingänge der Matrixoperationsschaltung angelegt werden, wobei jeweils in jeder Gruppe einzig das Halbleiterschaltelement, das dem jeweiligen Teil entspricht, in den leitenden Zustand geschaltet ist. Die Gruppen von Spaltenleitungen sollten vorzugsweise jeweils die gleiche Anzahl von Spaltenleitungen umfassen. Diese Anzahl kann zwischen eins (d.h. jeder Spaltenleitung ist eine Stromzählschaltung zugeordnet, wobei jeweils ein Halbleiterschaltelement in der Verbindung zwischen Stromausgang und Stromzählschaltung vorgesehen sein kann) und der Anzahl der Spaltenleitungen (d.h. eine einzige Stromzählschaltung ist allen Spaltenleitungen zugeordnet, wobei jeweils ein Halbleiterschaltelement in jeder der Verbindungen zwischen den Stromausgängen und der Stromzählschaltung vorgesehen sein kann) betragen.

Dadurch, dass die Stromzählschaltungen an ihrem Schaltungseingang jeweils ein Massepotential bereitstellen, ist die Funktion der Matrixoperationsschaltung gewährleistet (siehe etwa die Funktionsbeschreibung im Zusammenhang mit den Figuren 1A, 1 B). Die Zählsummen werden an Ausgängen der Stromzählschaltungen bereitgestellt bzw. können dort ausgelesen werden, diese Ausgänge bilden die Ausgänge 76i , 762, ... 76L der Summationsschaltung 60. Die Stromzählschaltungen sind bevorzugt wie im Zusammenhang mit Figur 2 beschrieben realisiert.

Figur 4 zeigt ein bevorzugtes Verfahren zum Betreiben einer Summationsschaltung gemäß der Erfindung. Im Verfahren wird zunächst in Schritt 102 die Zählsumme jeder der Stromzählschaltungen auf Null gesetzt, d.h. die Summationsschaltung wird initialisiert.

In Schritt 104 werden ein oder mehrere Vektoren von Spannungen bzw. Spannungsvektoren (der Reihe nach) jeweils für eine vorbestimmte Zeitdauer an die Spannungsanschlüsse angelegt. Dies führt dazu, dass die Ströme an den Stromausgängen der Matrixoperationsschaltung jeweils für die jeweilige Zeitdauer die durch die Matrixoperationsschaltung, insbesondere auch durch die Speicherzustände der Speicherelemente, bedingten Stromstärken aufweisen und, dass diese Ströme durch die Stromzählschaltungen über mehrere aufeinanderfolgende Zeitdauern integriert bzw. aufsummiert werden und die jeweilige gesamte Eingangsladung durch die Stromzählschaltung in Ladungsmaßeinheiten quantifiziert wird und eine entsprechende Zählsumme gebildet wird. Umfasst die Summationsschaltung Halbleiterschaltelemente, wie in Figur 3 gezeigt, und ist jeweils eine Stromzählschaltung einer Gruppe von Spaltenleitungen zugeordnet, die bzw. deren Stromausgänge mit der Stromzählschaltung verbunden sind, so wird bevorzugt, wenn unterschiedliche Vektoren von Spannungen angelegt sind, jeweils in jeder Gruppen genau eine unterschiedliche Spaltenleitung bzw. deren Stromausgang mit der der Gruppe zugeordneten Stromzählschaltung verbunden (indem das entsprechende Halbleiterschaltelement in den leitenden Zustand geschaltet wird, während die anderen Halbleiterschaltelemente in der Gruppe in den nichtleitenden Zustand geschaltet werden). Anders formuliert wird (im Falle mehrerer Spannungsvektoren) für jeden Spannungsvektor zunächst in jeder Gruppe genau ein Halbleiterschaltelement in den leitenden Zustand geschaltet (für unterschiedliche Spannungsvektoren sind dies unterschiedliche Halbleiterschaltelemente) und anschließend der Spannungsvektor für die vorbestimmte Zeitdauer angelegt (d.h. die Spannungen des Spannungsvektors an die Zeilenleitungen angelegt), wobei der Reihe nach für jeden Spannungsvektor so verfahren wird. Hier sollte die Anzahl von Spannungsvektoren gleich oder kleiner als die Anzahl von Spaltenleitungen in einer Gruppe sein. Die Stromzählschaltungen addieren die Teilsummen zu Zählsummen auf.

Im weiteren Schritt 106 werden die Zählsummen ausgelesen. Die Zählsummen bilden dann einen digitalen Ausgangsvektor bzw. Ausgangssummenvektor, in dem die verschiedenen (Teil-)Vektoren (die während jeder der Zeitdauern entsprechend den verschiedenen Eingangsspannungsvektoren vorliegen) der Ausgangströme an den Stromausgängen der Matrixoperationsschaltung aufsummiert sind.

Im Allgemeinen entsteht ein Rundungsfehler, da auf ganzzahlige Vielfache der Ladungsmaßeinheit abgerundet wird, um die Zählsummen bilden. Bevorzugt ist die Zeitdauer so gewählt wird, dass jede der Zählsummen größer als eine Min- dest-Zählsumme ist, wobei die Mindest-Zählsumme bevorzugt mindestens 20, weiter bevorzugt mindestens 50, am meisten bevorzugt mindestens 100 beträgt. Rundungsfehler können auf diese Weise klein gehalten werden; z.B. für die angegebenen Mindest-Zählsummen kleiner 5%, kleiner 2% oder kleiner 1 %. Alternativ oder zusätzlich wird im optionalen Schritt 108 allerdings ein Rest der Abrundung bestimmt. Dieser Rest kann dann zur Zählsumme addiert werden, um ein genaueres Ergebnis bzw. einen genaueren Ergebnisvektor zu erhalten.

Dazu kann der Rest durch Messen der restlichen Speicherladung bestimmt werden. Hierbei ist die Proportionalitätskonstante zwischen der Maximalspeicherladung und der Ladungsmaßeinheit zu berücksichtigen.

Alternativ kann der Rest wie folgt bestimmt werden, vgl. Figur 5. Zunächst werden in Schritt 100 vor dem Nullsetzen der Zählsummen ein Vektor von Referenzspannungen und eine Referenzzeitdauer so bestimmt, dass ein Anlegen der Referenzspannungen über die Referenzzeitdauer an die Spannungsanschlüsse Ströme an den Stromausgängen erzeugt, die über die Referenzzeitdauer integriert einer Referenzladung entsprechen, die ein Bruchteil der Einheitsladung der jeweiligen Stromzählschaltung ist.

Die Schritte 102, 104, 106 (Nullsetzen der Zählsummen, Anlegen der Spannungsvektoren jeweils für eine Zeitdauer und Auslesen der Zählsummen) werden dann nachfolgend wie im Zusammenhang mit Figur 4 beschrieben durchgeführt.

Zum Bestimmen der Reste der Abrundungen wird dann wie folgt in mehreren Durchgängen vorgegangen. In jedem Durchgang werden in Schritt 110 die Referenzspannungen (d.h. der Referenzspannungsvektor) über die Referenzzeitdauer an die Spannungsanschlüsse angelegt.

In Schritt 112 wird für jede der Stromzählschaltungen, die vom Prüfen noch nicht ausgeschlossen wurde, geprüft, ob sich die jeweilige Zählsumme geändert hat (zu Beginn, d.h. nach dem Auslesen der Zählsummen in Schritt 106 sind alle Stromzählschaltungen klarerweise als noch nicht ausgeschlossen definiert). Wenn sich die Zählsumme einer Stromzählschaltung geändert hat, wird diese vom Prüfen ausgeschlossen und der jeweilige Rest darauf basierend bestimmt; z.B. bevorzugt berechnet als Einheitsladung minus die Referenzladung multipliziert mit der Anzahl der vor dem jetzigen Durchgang durchgeführten Durchgänge. Im Prinzip wird also in der bevorzugten Berechnung auf den nächsten Bruch- teil aufgerundet; der letzte, jetzige Durchgang wird bei der Berechnung des Rests nicht berücksichtigt, um zu verhindern, dass bei nicht ganzzahligen Bruchteilen ein negativer Rest berechnet wird.

In Schritt 114 wird geprüft, ob alle Stromzählschaltungen vom Prüfen ausgeschlossen sind, wenn dies der Fall ist, wird in Schritt 116 das Verfahren beendet und die bestimmten Reste zu den jeweiligen Zählsummen addiert, andernfalls, d.h. wenn noch nicht alle Stromzählschaltungen vom Prüfen ausgeschlossen sind, wird wieder mit Schritt 110 (Anlegen der Referenzspannung über die Referenzzeitdauer) fortgefahren.

Vorteil dieser Ausführungsform ist, dass hier keine Analog-Digital-Wandler vorgesehen werden müssen, um analoge Messwerte, die z.B. beim Messen der restlichen Speicherladungen anfallen, in digitale Werte zu wandeln.

Wird eine Summationsschaltung mit Halbleiterschaltelementen (wie in Figur 3) verwendet, sollten während der Schritte 100, 110 (in den Spannungsvektoren angelegt werden) in jeder Gruppe jeweils dasselbe bzw. dieselben Halbleiterschaltelemente in den leitenden Zustand geschaltet sein.

Figur 6 stellt ein erfindungsgemäßes Rechenmodul 80 in Form eines Neurona- les-Netz-Rechenmoduls dar, d.h. ein Rechenmodul zur Durchführung und Beschleunigung von Matrix-Berechnungen im Rahmen von Anwendungen auf dem Gebiet neuronaler Netze bzw. künstlicher Intelligenz. Das Rechenmodul 80 umfasst eine Summationsschaltung 60 gemäß der Erfindung, etwa wie in Figur 3 gezeigt. Weiter umfasst das Rechenmodul eine Recheneinheit 82, die dazu eingerichtet ist, ein Verfahren gemäß der Erfindung durchzuführen, etwa eines der im Zusammenhang mit den Figuren 4 und 5 beschriebenen Verfahrens. Die Recheneinheit kann z.B. einen Prozessorkern und/oder ein FPGA (Field Programmable Gate Array) und zugehörige Arbeitsspeicher umfassen. Die Recheneinheit 82 ist über entsprechende Leitungen mit den Eingängen 75i , 752, ... 75M der Summationsschaltung 60 und mit den Ausgängen 76i , 762, ... 76i_ der Summationsschaltung 60 verbunden, weiterhin sind gegebenenfalls Steuerleitungen (der Übersichtlichkeit wegen nicht gezeigt) zur Ansteuerung von Halbleiterschalt- elementen vorgesehen, die zwischen die Stromausgänge der in der Summationsschaltung umfassten Matrixoperationsschaltung und die ebenfalls in der Summationsschaltung umfassten Stromzählschaltungen geschaltet sind (wie im Zusammenhang mit Figur 3 gezeigt und erläutert). Über diese Leitungen werden einerseits die Eingangsvektoren (digital oder analog) und gegebenenfalls Steuersignale für die Halbleiterschaltelemente an die Summationsschaltung übermittelt und andererseits die Ausgangsvektoren ausgelesen. Weiter umfasst das Rechenmodul 80 eine Schnittstelle 84, die mit der Recheneinheit 80 verbunden ist und zur externen Kommunikation dient. Die Schnittstelle kann als parallele oder serielle Schnittstelle ausgeführt sein, z.B. USB (Universal Serial Bus), PCI (Peripheral Component Interconnect), PCI-Express oder andere bekannte Schnittstellen; auch eine Schnittstelle zur drahtlosen Kommunikation ist denkbar. Über die Schnittstelle 85 kann auf das Rechenmodul zugegriffen werden, z.B. von einem Computer, der über die Schnittstelle mit dem Rechenmodul verbunden ist. Klarerweise kann das Rechenmodul weitere (nicht dargestellte) Einheiten und Leitungen umfassen, die insbesondere der Programmierung der Speicherelemente der in der Summationsschaltung 60 umfassten Matrixoperationsschaltung dienen. Ein Programmiereinheit (nicht dargestellt), die entsprechende Programmierleitungen (die mit den Zeilen- und Spaltenleitungen zum Teil identisch sein können) ansteuert, kann in der Recheneinheit 82 umfasst sein oder, zumindest teilweise, als gesonderte Einheit auf dem Rechenmodul realisiert sein. Im Prinzip ist es auch möglich, dass die Summationsschaltung 60 in ein Steckmodul integriert, das in eine entsprechende Fassung auf dem Rechenmodul gesteckt werden kann. Die Programmierung der Speicherelemente kann dann in einem gesonderten, von dem Rechenmodul unabhängigen Programmiergerät erfolgen.