-
VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht hiermit den Vorteil und die Priorität der vorläufigen
US-Patentanmeldung 62/725,088 , mit dem Titel „SPIN-ORBIT TORQUE DEVICE BASED CONTENT ADDRESSABLE MEMORY,“ eingereicht am 30. August 2018, die hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
-
TECHNISCHES GEBIET
-
Aspekte der Offenbarung beziehen sich auf die Bereiche eines inhaltsadressierbaren Speichers und künstliche neuronale Netzwerke.
-
HINTERGRUND
-
Inhaltsadressierbare Speicher (CAMs) sind eine Datenspeicheranordnung, die eine schnelle Suche in gespeicherten Daten unter Verwendung von Eingabewerten ermöglicht. Ein Direktzugriffsspeicher (RAM) verwendet eine Eingabespeicheradresse, um Daten an spezifischen Adressen abzurufen. Im Gegensatz dazu akzeptieren CAMs Eingabedaten oder Eingabetags, um zu bestimmen, ob Eingabedaten innerhalb des CAM gehalten werden, und erzeugen, falls gefunden, eine Speicheradresse oder Adressen, die den übereinstimmenden Eingabedaten innerhalb des CAM entsprechen. Bei Verwendung in einer Anordnung, welche als Assoziativspeicher bezeichnet wird, kann/können die vom CAM bestimmte Speicheradresse oder Speicheradressen anschließend in einen Direktzugriffsspeicher eingegeben werden, um einen Ausgabewert auf Grundlage dieser Speicheradressen zu erzeugen. Eine andere Form des CAM wird als ein ternärer inhaltsadressierbarer Speicher (TCAM) bezeichnet, der Platzhalter, „Don't-Care“ oder undefinierte Bereiche der Eingabedaten zulässt. Diese TCAM-Anordnung kann hilfreich sein, wenn nicht alle Ziffern von Eingabedaten bekannt sind, und kann eine Adressliste von einem CAM erzeugen, die mit dem Eingabedatenmuster mit Platzhalterwerten übereinstimmen. Jedoch erfordern TCAM-Implementierungen die Codierung von mindestens drei Zuständen für jedes Bit anstelle von zwei für traditionellere CAMs, die als binäre CAMs bezeichnet werden.
-
Es wurden verschiedene TCAM-Implementierungen versucht, aber diese Implementierungen haben den Nachteil, großen Energieverbrauch, hohe Halbleiterflächen und begrenzte Geschwindigkeit aufzuweisen. Beispielsweise können CAMs auf der Basis von komplementären Metalloxidhalbleitern (CMOS) eine hohe statische Verlustleistung und einen hohen Flächenaufwand aufweisen, wenn die Dichte von CMOS-basierten CAMs zunimmt. Eine andere TCAM-Implementierung verwendet STT-MRAM-Zellen (Spin-Transfer Torque) (Magnetic Random-Access-Memory). Jedoch weisen diese Anordnungen begrenzte Suchgeschwindigkeiten teilweise aufgrund des geringen magnetischen Tunnelwiderstands (TMR) der STT-MRAM-Konfiguration auf. Darüber hinaus führen hohe Schreibströme, die für die STT-MRAM-basierten TCAMs benötigt werden, zu unerwünschten Verlustleistungen und höheren Kenngrößen von Lese-/Schreibunterstützungsschaltungen.
-
CAMs und TCAMs werden häufig in Netzwerk-Routing-Geräten eingesetzt. Jedoch können diese Speicherstrukturen auch in künstlichen neuronalen Netzen (KNN) angewendet werden. KNNs können aus einzelnen künstlichen Neuronen gebildet werden, die unter Verwendung von Software, integrierter Hardware oder anderen normierten Elementen emuliert werden. Neuromorphic Computing kann KNNs verwenden, es konzentriert sich auf die Verwendung elektronischer Bauteile wie zum Beispiel analoger/digitaler Schaltungen in integrierten Systemen zur Simulation des menschlichen Gehirns, um ein besseres Verständnis des neurobiologischen Aufbaus des neuronalen Systems zu erlangen. Neuromorphic Computing betont die Implementierung von Modellen neuronaler Systeme, um zu verstehen, wie die Morphologie einzelner Neuronen, Synapsen, Schaltungen und Architekturen zu erwünschten Berechnungen führt.
-
ÜBERBLICK
-
Es werden hierin ternäre inhaltsadressierbare (TCAM) Speicherschaltungen bereitgestellt. In einer beispielhaften Implementierung kann eine TCAM-Schaltung einen ersten Spin-Bahn-Drehmoment-(SOT)-Magnettunnelkontakt (MTJ) einschließen, der eine festgesteckte Schicht aufweist, die mit einem ersten Lesetransistor verbunden ist, der durch eine erste Suchleitung gesteuert wird, und eine Spin-Hall-Effekt-(SHE)-Schicht aufweist, die in einer ersten Konfiguration über komplementierte Schreibeingänge verbunden ist. Die TCAM-Schaltung kann ein zweites SOT-MTJ-Element einschließen, das eine festgesteckte Schicht aufweist, die mit einem zweiten Lesetransistor verbunden ist, der durch eine zweite Suchleitung gesteuert wird, und eine SHE-Schicht aufweist, die in einer zweiten Konfiguration über die komplementierten Schreibeingänge verbunden ist. Die TCAM-Schaltung kann einen Vorspannungungstransistor einschließen, der eingerichtet ist, um eine Vorspannung an den Drain-Anschlüssen des ersten Lesetransistors und des zweiten Lesetransistors bereitzustellen, sowie ein Spannungshalteelement, das die Drain-Anschlüsse mit einer Übereinstimmungsindikatorleitung koppelt.
-
Figurenliste
-
Viele Aspekte der Offenbarung können unter Bezugnahme auf die folgenden Zeichnungen besser verstanden werden. Während mehrere Implementierungen in Verbindung mit diesen Zeichnungen beschrieben werden, ist die Offenbarung nicht auf die hier offenbarten Implementierungen beschränkt. Im Gegenteil, es ist beabsichtigt, alle Alternativen, Modifikationen und Entsprechungen abzudecken.
- 1 veranschaulicht inhaltsadressierbare Speicher in einer Implementierung.
- 2 veranschaulicht ein künstliches neuronales Netz in einer Implementierung.
- 3 veranschaulicht einen inhaltsadressierbaren Speicher in einer Implementierung.
- 4 veranschaulicht eine beispielhafte Schaltung mit einem Spin-Bahn-Drehmoment-Bauelement in einer Implementierung.
- 5 veranschaulicht einen beispielhaften inhaltsadressierbaren Speicher mit Spin-Bahn-Drehmoment-Bauelementen in einer Implementierung.
- 6 veranschaulicht beispielhafte Prozesse eines inhaltsadressierbaren Speichers mit Spin-Bahn-Drehmoment-Bauelementen in einer Implementierung.
- 7 veranschaulicht beispielhafte Prozesse eines inhaltsadressierbaren Speicher mit Spin-Bahn-Drehmoment-Bauelementen in einer Implementierung.
- 8 veranschaulicht ein Rechensystem, um ein künstliches neuronales Netz oder einen inhaltsadressierbaren Speicher mit Spin-Bahn-Drehmoment-Bauelementen gemäß einer Implementierungzu verwalten oder zu steuern.
- 9 veranschaulicht eine beispielhafte Leistung von Magnettunnelkontakt-Bauelementen.
-
DETAILLIERTE BESCHREIBUNG
-
In der vorliegenden Erläuterung werden verschiedene verbesserte Schaltungen vorgestellt. Diese verbesserten Schaltungen können inhaltsadressierbare (CAM) Speicherelemente beinhalten, um neben anderen Anwendungen den Prozess weiter zu beschleunigen und den Stromverbrauch von neuronalen Netzwerken zu reduzieren. Zum Beispiel können die CAM-Strukturen in einem beliebigen inhaltsadressierbaren Speicher und einer beliebigen inhaltsadressierbaren Speicheranwendung verwendet werden. Es werden hierin ternäre inhaltsadressierbare (TCAM) Speicherstrukturen erläutert, welche Platzhalter, „Don't-Care“ oder undefinierte Teile von Eingabedaten zulassen, um übereinstimmende Ergebnisse zu verwalten. Eine solche hierin diskutierte TCAM-Struktur weist zwei Spin-Hall-Effekt-(SHE)-Magnetspeicherzellen (MRAM) auf, welche Spin-Bahn-Drehmoment-(SOT)-Magnettunnelkontaktelemente (MJT) verwenden.
-
CAM- und TCAM-Strukturen verwenden üblicherweise nichtflüchtige Speicherelemente (NVM), um Daten zu speichern, die unter Verwendung von Eingabedaten oder Eingabetags durchsucht werden können. Vorangegangene Versuche an CAM/TCAM-Strukturen beinhalten komplementäre Metalloxid-Silizium-(CMOS)-Strukturen, die verwendet werden, um statische Direktzugriffspeicherelemente (SRAM) zu implementieren. Obwohl sie für CAM/TCAM-Zwecke funktionell sind, sind Zellen auf CMOS-Basis groß und verbrauchen mehr Strom als andere Zelltypen. Somit sind Zellen auf CMOS-Basis für den Einsatz in einem neuronalen Netz von TCAM- Strukturen unerwünscht, wie nachfolgend in 2 erläutert.
-
CAM/TCAM-Strukturen könnten stattdessen unter Verwendung von Magnettunnelkontakten (MTJs) oder verschiedenen resistiven Speichervorrichtungen, wie beispielsweise Memristoren, gebildet werden. MTJ-Elemente können verwendet werden, um Datenspeicherelemente zu bilden. MTJs arbeiten unter Verwendung eines magnetischen Tunnelwiderstands (TMR), der ein magnetoresistiver Effekt ist. MTJs bestehen in der Regel aus zwei Schichten aus ferromagnetischen Materialien, die durch eine dünne Isolierschicht getrennt sind, durch die Elektronen quantenmechanisch von einer ferromagnetischen Schicht in die andere geschleust werden. Eine ferromagnetische Schicht eines MTJ kann als eine festgesteckte Schicht bezeichnet werden, die einen konstanten Magnetisierungszustand aufweist, während die andere ferromagnetische Schicht eines MTJ eine freie Schicht aufweist, welche den Magnetisierungszustand ändern kann. Eine Zwischenschicht, die einen dünnen Isolator aufweist, der die beiden ferromagnetischen Schichten trennt, kann aus einem Oxidmaterial oder einem anderen geeigneten elektrischen Isolator gebildet sein. Elektrische Anschlüsse können gebildet werden, um die freien und festgesteckten Schichten des MTJ mit anderen Bauteilen in einer Schaltung zu verbinden.
-
MTJ-Elemente können in der Regel in zwei unterschiedlichen Zuständen angeordnet sein, die den darin gespeicherten verschiedenen logischen Werten entsprechen können. Diese Zustände hängen von einem Magnetisierungszustand des MTJ-Elements ab, der einem magnetoresistiven Wert des gerade erörterten MTJ-Elements entsprechen kann. Die veränderbaren magnetischen Zustände von MTJ-Elementen, die hier erläutert werden, können sich im Rahmen von zwei Zuständen ändern, nämlich einem parallelen Zustand und einem antiparallelen Zustand. Ein paralleler Zustand tritt auf, wenn eine freie Schicht und eine festgesteckte Schicht eines MTJ-Elements in dem gleichen Magnetisierungszustand sind. Ein antiparalleler Zustand tritt auf, wenn eine freie Schicht und eine festgesteckte Schicht eines MTJ-Elements in einem unterschiedlichen Magnetisierungszustand sind. Es können den magnetischen Zuständen logische Werte zugeordnet werden, wie eine logische ,0' für einen antiparallelen Zustand und eine logische ,1' für einen parallelen Zustand, neben anderen Konfigurationen.
-
MTJ-Typen können verschiedene Konfigurationen einschließen, die in künstlichen neuronalen Netzschaltungen und CAM/TCAM-Schaltungen eingesetzt werden können. MTJ-Bauelemente verwenden typischerweise spinpolarisierte Ströme, um einen Magnetisierungszustand einer ferromagnetischen Schicht reversibel umzuschalten, nämlich einen Magnetisierungszustand der oben erwähnten freien Schicht. Es können rechtwinklige oder parallele Anordnungen von MTJ-Elementen verwendet werden, die sich auf einen Typ von magnetischer Anisotropie beziehen, die einer bevorzugten Ausrichtungsrichtung in magnetischen Momenten innerhalb des MTJ-Elements in Bezug auf eine Oberfläche eines entsprechenden Halbleitersubstrats zugeordnet ist. Ein erster Typ von MTJ-Konfiguration beinhaltet eine homogene senkrechte Spintransfer-Drehmoment-(STT)-Anordnung, die typischerweise ein Bauelement mit 2 Anschlüssen aufweist, die aus zumindest drei übereinander liegenden Materialschichten gebildet ist. Diese drei Schichten schließen eine Tunnelbarriereschicht ein, die zwischen einer festgesteckte Schicht und einer freien Schicht angeordnet ist. Die freie Schicht und die festgesteckte Schicht sind mit den zwei Anschlüssen des STT-MTJ verbunden.
-
Es wurden STT-MTJ-basierte TCAM-Zellen entwickelt, die mehrere Steuerungstransistoren und zwei STT-MTJ-Elemente aufweisen können. Diese Struktur hat gegenüber der obigen CMOS-Konfiguration insofern Vorteile, als wenig bis kein statischer Leistungsverbrauch auftritt, sie eine kompaktere Größe aufweist und eine reduzierte Transistorzahl aufweist. Konfigurationen von STT-MTJ-basierten TCAMs könnten auch gemeinsame oder getrennte Schreibleitungen (WL) und Lese-/Suchleitungen (SL) verwenden. Getrennte Schreib- und Suchleitungen können strukturelle Vorteile gegenüber den CMOS-Designs aufweisen. Jedoch ist die Suchgeschwindigkeit (Lesegeschwindigkeit) in STT-MTJ-basierten Schaltungen teilweise aufgrund der Eigenschaften des magnetischen Tunnelwiderstands (TMR) der STT-MTJ-Elemente und des höheren dazugehörigen Schreibstroms, der für STT-Konfigurationen typisch ist, begrenzt. Somit müssen STT-MTJs größerer Größe eingesetzt werden, um TCAM-Suchgeschwindigkeiten zu erhöhen. Auch können aufgrund der Konfiguration der Schaltung Lesestörungen auftreten.
-
Aufgrund der Einschränkungen und Leistungsvorbehalte von sowohl CMOS- als auch STT-MTJ-basierten TCAM-Designs wird nun ein verbessertes MTJ-basiertes Design vorgestellt. Ein solches MTJ-basiertes Design, das hierin erläutert wird, weist zwei Spin-Hall-Effekt-(SHE)-magnetoresistive Direktzugriffsspeicher-(MRAM)-Zellen auf, die heterogen in der Ebene liegende Spin-Bahn-Drehmoment-(SOT)-Magnettunnelkontakt-(MTJ)-Elemente verwenden, ein. Dieses verbesserte Design kann in jedem beliebigen CAM oder TCAM angewendet werden, das in neuronalen Netzanwendungen verwendet werden kann oder auch nicht. Daher können mit diesen verbesserten Zellschaltungsstrukturen universelle inhaltsadressierbare Speicherstrukturen bereitgestellt werden.
-
SOT-MTJ-Bauelemente weisen typischerweise Bauelemente mit 3 Anschlüssen auf. Im Gegensatz zu den STT-MTJ-Bauelementen mit zwei Anschlüssen können SOT-MTJ-Bauelemente neben anderen Unterschieden einen zusätzlichen Anschluss mit einer Metallunterschicht aufweisen. In diesen SOT-MTJ-Konfigurationen werden getrennte „Schreib-“ und „Lese“-Strompfade vorgesehen, die eine längere Lebensdauer haben können. In SOT-MTJ-Bauelementen wird ein Schreibstrom durch eine getrennte, darunter liegende Schicht anstatt durch eine Tunnelbarriereschicht geleitet, wie es in STT-MTJ-Elementen auftritt. Der Schreibstrom durch die Tunnelbarriereschicht in STT-MTJ-Elementen kann im Vergleich zu SOT-MTJ-Elementen zu mehr Verschleiß und Beschädigung von Tunnelbarriereschichtmaterialien führen. Darüber hinaus können auch, wenn getrennte Schreib- und Lesepfade verwendet werden, Lesesteuerungs- und Schreibsteuerungselemente wie zum Beispiel Lese- oder Schreibsteuerungstransistoren eine kleinere relative Größe im Vergleich zu den STT-MTJ-Strukturen aufweisen. Dies ist zum Teil auf einen größeren magnetischen Tunnelwiderstand (TMR) der SOT-MTJ-Konfiguration im Vergleich zu STT-MTJ-Strukturen zurückzuführen. Genauer gesagt können SOT-MTJ-Bauelemente einen höheren TMR als STT-MTJ-Bauelemente verwenden, was die Schreib- und Leseenergie, die für die hierin beschriebenen CAM/TCAM-Strukturen benötigt wird, reduzieren kann. Der reduzierte Energiebedarf entspricht einem geringeren Lese-/Schreibstrom in der SOT-MTJ-Konfiguration im Vergleich zu anderen MRAM- oder CMOS-Strukturen, was zu längeren Laufzeiten führen kann.
-
SOT-MTJs können hierin auch als Spin-Hall-Effekt-(SHE)-MTJs bezeichnet werden, wobei die Metallunterschicht ein Spin-Hall-Metall (SHM) aufweist. Beispielhafte SHE-MTJ-Strukturen sind in 4 unten dargestellt. Andere Ansätze können einen SOT in der MTJ-Ebene durch einen zum MTJ lotrechten SOT ersetzen, an dem ein externes elektrisches Feld angelegt ist. Dieses externe Feld kann jedoch die thermische Stabilität benachbarter Schaltungen verschlechtern.
-
Bevor auf die verbesserten, auf SOT/SHM-MTJ basierenden CAM/TCAM-Strukturen eingegangen wird, wird kurz eine relative Leistungsfähigkeit zwischen verschiedenen CAM/TCAM-Speicherzelltechnologien erläutert. 9 zeigt Leistungsvergleiche zwischen verschiedenen Technologien zum Implementieren der Speicherzellstrukturen, welche in CAM/TCAM-Designs verwendet werden. 9 veranschaulicht Leseleistungszunahmen durch Erhöhen der thermischen Stabilität (Δ) in einer SHE-MRAM-Struktur. Wie aus der Grafik 900-902 in 9 ersichtlich ist, zeigen SHE-MRAM-Strukturen auch bei höherer thermischer Stabilität (Δ) im Vergleich zu STT-MRAM-Strukturen einen geringen Schreib-Overhead. Höhere Δ erlaubt auch größere Leseströme. Somit können Leseverzögerungen mit minimalem Verlust von Schreibverzögerungen durch die Verwendung von SHE-MRAM-Strukturen reduziert werden.
-
In der Grafik 900 von 9 ist ein Vergleich des Schreibverzögerungsverhaltens zwischen STT-MRAM-Bauelementen und SHE-MRAM über die Erhöhung des Prozentsatzes der thermischen Stabilität entlang der horizontalen Achse dargestellt. Wie zu sehen ist, behalten SHE-MRAM-Bauelemente geringere Schreibverzögerungen über einen größeren Bereich der thermischen Stabilität als STT-MRAM-Bauelemente bei. In der Grafik 901 von 9 wird Lesestrom für ein SHE-MRAM-Bauelement in einem Bereich der thermischen Stabilität gezeigt, der entlang der horizontalen Achse dargestellt ist. In der Grafik 902 von 9 wird die Leseverzögerung für ein SHE-MRAM-Bauelement in einem Bereich der thermischen Stabilität gezeigt, der entlang der horizontalen Achse angegeben ist. Die Lesestromleistung und die Leseverzögerungsleistung können durch die Wahl des Materials, die Reinheit des Materials und die Zusammensetzung des Materials der darunter liegenden Schicht der SHE-MRAM-Struktur beeinflusst werden.
-
Tabelle 903 in 9 veranschaulicht die Leistung von SHE-MRAM, wenn sie in einer Level-2 (L2)-Cache-Struktur verwendet wird. In der Tabelle 903 werden verschiedene Typen von Speicherzellenstrukturen verglichen, wie CMOS (SRAM)-, STT-MRAM- und SHE-MRAM-Strukturen. Verglichen mit SRAM-Bauelementen bieten SHE-MRAM-Bauelemente eine ähnliche Leselatenz, aber eine geringere Leckage und eine dichtere Flächennutzung. Im Vergleich zu STT-MRAM-Bauelementen übertreffen SHE-MRAM-Bauelemente die STT-MRAM-Bauelemente mit verringerten Bitzellen-Ausfallsraten. Jedoch haben STT-MRAM-Bauelemente und SHE-MRAM-Bauelemente ähnliche Grundflächen. Darüber hinaus könnte ein höherer magnetischer Tunnelwiderstand (TMR) in SHE-MRAM-Bauelementen zur Verringerung der benötigten Leseenergie für die CAM/TCAM-Strukturen angewendet werden, wie hierin erläutert.
-
Nun wird auf die verbesserten Strukturen zum Implementieren von Bauelementen mit einem inhaltsadressierbaren Speicher (CAM) und einem ternären inhaltsadressierbaren Speicher (TCAM) Bezug genommen, wie in 1 dargestellt. Wie oben erwähnt, ist ein CAM ein Speicher, der das Durchsuchen von gespeicherten Daten über eingegebene Suchdaten anstelle von Adressdaten zulässt, wie dies bei den meisten Direktzugriffsspeicherbauelementen erfolgt. Ein CAM vergleicht eingegebene Suchdaten mit einer Tabelle gespeicherter Daten und sendet die Adresse der übereinstimmenden Daten zurück. Diese Adresse kann dann verwendet werden, um die Daten selbst aus dem Speicher abzurufen. Es können verschiedene Arten von CAMs gebildet werden, wobei eine beispielhafte Art davon als ternärer CAM (TCAM) bezeichnet wird. Herkömmliche CAMs erfordern binär formatierte eingegebene Suchdaten. Jedoch ermöglichen TCAMs die Verwendung eines dritten (ternären) Zustands von „Don't-Care“ oder eines Platzhalters für undefinierte Abschnitte der eingegebenen Suchdaten, so dass der TCAM keine exakte Instanz der eingegebenen Suchdaten aufweisen muss, um eine sich daraus ergebende Adresse zu erzeugen. 1 veranschaulicht ein Beispiel eines CAM-Systems 100.
-
In 1 gelangen die eingegebenen Suchdaten 120 aus System 100 in eine CAM-Schaltung 110, welche die eingegebenen Suchdaten mit einer gespeicherten Tabelle von Dateninhalten des CAM vergleicht. Wenn ein Treffer gefunden wird, dann wird die übereinstimmende Position 121 als ein Ergebnis präsentiert. Dieses Ergebnis kann an den Direktzugriffsspeicher 111 zur Verwendung als Nachschlageadresse weitergegeben werden. Wenn diese Nachschlageadresse einem Speicher präsentiert wird, erzeugt sie Ausgabedaten von dem Direktzugriffsspeicher 111, welche den eingegebenen Suchdaten 120 und der übereinstimmenden Position 121 entsprechen. Im Beispiel von 1 werden die Routing-,Ports' des Kommunikationsnetzwerks lediglich verwendet, um ein häufiges Beispiel für die Verwendung von CAMs zu zeigen. Die Ausgabedaten 122 weisen einen Port auf, der für das Routing von Kommunikationen basierend auf eingegebenen Suchdaten verwendet wird, die eine Netzwerkadresse aufweisen, obwohl stattdessen jede Art von Daten verwendet/gespeichert werden kann.
-
Ebenfalls wird in 1 die Schaltung 130 dargestellt, die eine detaillierte konzeptionelle Ansicht eines CAM darstellt. Die eingegebenen Suchdaten 120 weisen in diesem Beispiel ein n-Bit-Suchwort auf, das in einem Suchdatenregister zur Weitergabe auf Suchleitungen an die Nachschlagetabelle 131 der vorher gespeicherten Wörter 0 bis w übermittelt wird. Der Ausgabecodierer 132 zeigt eine oder mehrere übereinstimmende Positionen 134 auf, die eine oder mehrere Datenadressen aufweisen können, die einem Speicherort entsprechen, der den eingegebenen Suchdaten 120 zugeordnet ist. In der Schaltung 130 wird dies als Speicherwort w-1 dargestellt und auf einer zugeordneten Übereinstimmungsleitung gezeigt. Übereinstimmungsleitungen können in einigen Beispielen als Übereinstimmungsindikatorleitungen oder Ausgabeleitungen bezeichnet werden. Diese Datenadresse kann verwendet werden, um die Zieldaten aus einem Speicher abzurufen, oder für andere direktere Anwendungen herangezogen werden.
-
Eine beispielhafte Anwendung von CAM/TCAM-Strukturen findet sich in künstlichen neuronalen Netzen (KNN). Künstliche neuronale Netze können unter Verwendung herkömmlicher Verarbeitungselemente sowie spezieller Schaltungen gebildet werden. Beispielhafte Verarbeitungselemente beinhalten zentrale Verarbeitungseinheiten (CPUs) oder grafische Verarbeitungseinheiten (GPUs), die für Anwendungen für maschinelles Lernen, wie beispielsweise Bilderkennung, Spracherkennung, Handschriftenerkennung, neben anderen Anwendungen, gut geeignet sind.
-
Um Prozesse des maschinellen Lernens auszuführen, kann eine CPU aufgrund der Bauweise der meisten CPUs eingeschränkt sein. Beispielsweise ist eine CPU bei der Handhabung eines Satzes von sehr komplexen Befehlen sehr effizient, weist jedoch keine Parallelität auf. In der maschinellen Lernberechnung, insbesondere bei Trainingsoperationen, ist eine grundlegende Operation die Vektor-Matrix-Multiplikation. GPUs, die gegenüber CPUs an Beliebtheit gewonnen haben, verwenden parallele Anordnungen und sind in der Handhabung vieler paralleler Sätze sehr einfacher Befehle sehr effizient. Eine weitere Wahl sind ASICs, wie zum Beispiel eine Tensor-Verarbeitungseinheit (TPU), die bei der Ausführung einer spezifischen Aufgabe effizient ist. Da maschinelles Lernen immer stärker in täglichen Anwendungen integriert ist, wächst das Interesse daran, diese Spezialchips für maschinelle Lernaufgaben herzustellen sowie bestehende Prozessorbasierte Designs effizienter zu gestalten.
-
Neben der Geschwindigkeit der Datenverarbeitung ist ein weiteres Problem beim maschinellen Lernen und bei neuronalen Netzen der Stromverbrauch. Für eine maschinelle Lernaufgabe können GPUs oder TPUs bis zu Hunderten von Watt benötigen, im Gegensatz zum menschlichen Gehirn, das ähnliche kognitive Aufgaben mit nur etwa 20 Watt ausführen kann. Solche energieintensiven Nachteile haben inspirierte Personen dazu veranlasst, von der Biologie oder dem Gehirn inspirierte Ansätze wie Neuromorphic Computing zu studieren, um sich mit den Stromverbrauchsproblemen des maschinellen Lernens zu beschäftigen. Wie unten erläutert, wird von einem anderen Ansatz ausgegangen, um den Energieverbrauch zu verringern, wenn GPUs oder andere Verarbeitungsvorrichtungen verwendet werden. Dieser erweiterte Ansatz verwendet eine neue Struktur von inhaltsadressierbaren (CAM)-Bauelementen, um den Betrieb von GPUs in neuronalen Netzen zu ergänzen.
-
Wie oben erwähnt, können KNNs, wie etwa konvolutionelle neuronale Netze (KNNs) unter Verwendung von Mehrkernprozessoren, die aus GPUs gebildet werden, implementiert werden. In GPU-Anordnungen wird eine große Energiemenge von Gleitkommaeinheiten (FPUs) verbraucht, die Addierer (ADD), Multiplizierer (MUL) und Multiplikator-Akkumulator-Elemente in Streaming-Cores aufweisen, die Daten verarbeiten. Die verbesserten CAM/TCAM-Beispiele hierin können in KNNs eingesetzt werden, die Prozessoren wie GPUs verwenden. Insbesondere kann ein inhaltsadressierbarer Speicher (CAM) mit einer Verarbeitungs-Pipeline in einer GPU oder einem anderen Prozessor verbunden sein. Der CAM kann verwendet werden, um hochfrequente Muster zu speichern, die von dem CNN angetroffen werden. Diese hochfrequenten Muster können effizient über Suchbegriffe oder Suchdaten durchsucht werden, was eine signifikante Rechenverringerung und Energieeinsparung in dem CNN bewirken kann.
-
2 veranschaulicht ein beispielhaftes System 200 zur Anwendung von CAM in einer neuronalen Netzwerkimplementierung, was einen verbesserten Betrieb von einem GPU-implementierten neuronalen Netz oder einem Prozessor für Aufgaben zum maschinellen Lernen zur Folge haben kann. System 200 beinhaltet einen ternären CAM (TCAM) 221 und einen Speicher 222, die den Assoziativspeicher 220 bilden, um den Betrieb eines neuronalen Netzes zu komplementieren, das unter Verwendung von Gleitkommaeinheiten (FPUs) 210 in einer entsprechenden GPU gebildet wird. Die Integration des TCAM 221 neben jeder FPU in einem GPU-Streaming-Core bewirkt eine Verringerung der Rechenleistung und eine Energieeinsparung. Insbesondere ist der Assoziativspeicher 220 zum Nachschlagen hochfrequenter Muster unter Verwendung von in den TCAM 221 eingegebener Suchdaten vorgesehen. Diese Konfiguration kann eine erhebliche Rechenverringerung und Energieeinsparung bereitstellen. Wie bereits erwähnt, ist die GPU eine verallgemeinerte Form der GPU, die neben der reinen Grafikverarbeitung auch zur Verarbeitung beliebiger Datenaufgaben verwendet wird. Dieser GPU-Typ kann hierin als Mehrzweck-Graphikverarbeitungseinheit (General Purpose Graphics Processing Unit - GPGPU) bezeichnet werden.
-
In 2 werden die Eingaben 201 an eine Pipeline der FPU-Stufen 211-215 der FPU 210 innerhalb einer entsprechenden GPGPU gesandt. Ein Gleitkommaergebnis (QFPU ) ergibt sich aus der Verarbeitung der Eingaben durch die FPU-Pipeline. Eingaben 201 werden auch gleichzeitig an den TCAM 221 als eingegebene Suchdaten gesandt. Wenn eine Suche im TCAM 221 (z. B. ein Treffer) erfolgreich ist, wird das Trefferanzeigersignal 223 an die Pipelinesteuerungsschaltung 216 gesandt. Die Pipelinesteuerungsschaltung 216 kann eine Taktschaltung aufweisen, welche Taktsignale an die FPU-Stufen 211-215 sendet. Trefferanzeigersignal 223 zeigt der Taktschaltung der Pipelinesteuerungsschaltung 216 an, Taktsignale zu den FPU-Stufen 211-215 zu sperren oder anderweitig zu deaktivieren. Sobald das Trefferergebnis eine Datenausgabe aus dem Speicher erzeugt, der TCAM 221 zugeordnet ist, wird ein entsprechendes Ergebnis (QAM ) als eine Ausgabe der Pipeline anstelle eines QFPU -Ergebnisses bereitgestellt. Der Multiplexer 217 wird durch das Trefferanzeigersignal 223 des Assoziativspeichers 220 gesteuert, welcher vorgesehen werden kann, um zwischen de Ergebnissen von QFPU und QAM zu wählen.
-
Wie in 2 zu sehen, müssen Eingaben, die in dem Assoziativspeicher 220 enthalten sind, nicht von der FPU-Pipeline verarbeitet werden. Eine signifikante Energieeinsparung kann realisiert werden, indem die FPU-Pipeline in diesen Fällen unter Verwendung des Trefferanzeigersignals 223 und der Taktungsschaltungssteuerung deaktiviert wird. Andere Mittel zum Steuern der FPU-Pipeline können auf andere Weise als eine Taktungssteuerungsschaltung implementiert werden, wie etwa als Leistungssteuerungs-Gating der FPU-Pipeline-Schaltelemente, logische Deaktivierung der FPU-Pipeline-Schaltung oder durch andere Techniken. Wenn jedoch eingegebene Operanden nicht im Assoziativspeicher 220 enthalten sind, kann die FPU-Pipeline aktiviert werden, um die Eingaben zu verarbeiten, um ein Ergebnis zu erhalten. Die Auswahl zwischen dem TCAM-basierten Ergebnis oder dem FPUbasierten Ergebnis wird auf Grundlage dessen erreicht, ob eine Übereinstimmung in dem TCAM angezeigt wird oder nicht.
-
Der Assoziativspeicher 220 wird aktualisiert, um häufige Ergebnisse aus der Verarbeitung von Eingabeoperandendaten durch die FPU-Pipeline zu halten. Diese Aktualisierung kann auf Grundlage verschiedener Kriterien, wie zum Beispiel bei Ergebnissen, die bisherigen Ergebnissen ähnlich sind, oder unter Verwendung von jedem Ergebnis bei einer Initialisierung ausgeführt werden, bis die Kapazität des Assoziativspeichers erschöpft ist. Ein anschließender Treffer kann anzeigen, dass daraus resultierende Daten im Assoziativspeicher verbleiben können, und Daten mit wenigen verbundenen Treffern durch neue Ergebnisse von der FPU-Pipeline ersetzt werden können. Da TCAM 221 erfolgreiche Treffer auf Grundlage von ternär formatierten Daten anzeigen kann, müssen genaue Übereinstimmungen nicht als Eingabeoperanden präsentiert werden, um einen Treffer zu erzeugen. In Anwendungen zum maschinellen Lernen und anderen neuronalen Netzanwendungen kann diese Übereinstimmung/dieser Treffer ausreichend sein, um Ergebnisse zu erzeugen und den Stromverbrauch durch FPU-Pipelinestufen eliminieren.
-
3 stellt eine schematische Ansicht 300 des inhaltsadressierbaren Speichers 310 dar. Diese schematische Ansicht weist Spalten von Zellen (C) 311-323 auf, die CAM- oder TCAM-Zellen aufweisen und in Spalten mit einer Vielzahl von Suchleitungen (SL0 - SL2) und logisch komplementierten Suchleitungen verbunden sind (SL0-SL2). Wenn die Zellen von CAM 310 TCAM-Zellen aufweisen, wird daher eine Vielzahl von TCAM-Zellen in Spalten und Reihen angeordnet, wobei die TCAM-Zellen jeder Spalte über zugeordnete Suchleitungen verbunden sind und die TCAM-Zellen jeder Reihe über zugeordnete Übereinstimmungsleitungen verbunden sind. Da Suchdaten auf Suchleitungen über Datensuchregister/Treiber 330 geleitet werden, können Ergebnisse durch Reihen von Übereinstimmungsleitungen (ML), die Leseverstärkern 341-344 zugeführt werden, überwacht werden. Der Codierer 350 kann ein Ergebnis auf Grundlage dessen präsentieren, welche Übereinstimmungsleitung einen Treffer erzeugt. Dieses Ergebnis weist eine übereinstimmende Position 302 oder eine übereinstimmende Adresse auf.
-
Die Steuerungsschaltung 360 ist zum Schreiben von Daten auf den CAM 310, Senden der Eingabedaten als Suchworte 301 zum Durchsuchen von CAM 310 und Auslesen der übereinstimmenden Positionen 302 eingerichtet. Die Steuerungsschaltung 360 kann diskrete Steuerlogik, integrierte Steuerlogik, Verarbeitungsvorrichtungen, Firmware, Software oder andere Steuerungselemente umfassen, die verwendet werden können, um den Betrieb der in 3 dargestellten Schaltung zu steuern, wie unten in 5 zu sehen ist. Die Steuerungsschaltung 360 kann in eine oder mehrere Instanzen der Schaltung in den 3 und 5 integriert werden. Wenn beispielsweise ein Array von TCAM-Zellen unter Verwendung der Schaltung in 5 gebildet wird, kann die Steuerungsschaltung 360 mit gemeinsam genutzten Steuerungsleitungen für die TCAM-Zellen verbunden werden, die in Reihen und Spalten angeordnet sind. Insbesondere Suchleitungen, Schreibleitungen, Steuerungsleitungen, Übereinstimmungsleitungen und dergleichen können miteinander verbunden werden, um Elemente der Steuerungsschaltung 360 zu steuern. Bei Verwendung in einer neuronalen Netzschaltung, wie in 2 zu sehen, kann diese TCAM-Anordnung verwendet werden, um den Betrieb des neuronalen Netzes zu beschleunigen sowie den Energieverbrauch des neuronalen Netzes zu verringern, wenn Übereinstimmungen innerhalb des TCAM-Arrays für Eingabedaten gefunden werden.
-
Um einen TCAM zu implementieren, können verschiedene Ansätze verfolgt werden. Bezugnehmend auf 3 kann jede Komponente der ,Zelle‘ (C) in dem inhaltsadressierbaren Speicher 310 durch verschiedene Speicherstrukturen gebildet werden. Typischerweise schließen diese Speicherstrukturen nichtflüchtige Speicherelemente (NVM) sowie die Steuerlogik ein. In einem Fall ist ein solches NVM-Element ein Spin-Bahn-Drehmoment-(SOT)-MTJ-Element, das ein darunter liegendes Spin-Hall-Effekt-(SHE)-Material aufweist. Vor einer Erläuterung der verbesserten TCAM-Zellstruktur wenden wir uns zuerst einer kurzen Einführung in die Struktur eines Spin-Bahn-Drehmoment-(SOT)-MTJ-Elements zu. Ein nichtflüchtiges Speicherelement, das dieses SOT-MTJ-Element beinhaltet, kann als ein Spin-Hall-Effekt-(SHE) magnetoresistiver Direktzugriffsspeicher (MRAM) bezeichnet werden. 4 veranschaulicht eine beispielhafte SHE-MRAM-Struktur 400.
-
In 4 steuert eine Steuerungsschaltung, die nicht gezeigt ist, eine Richtung der Ladungsbewegung durch eine Materialschicht 431 des Spin-Hall-Metallelements (SHM) 430. Gemäß dem Spin-Hall-Effekt können sich entgegengesetzt ausgerichtete Spins auf gegenüberliegenden Oberflächen des Ladungsträgermaterials ansammeln. Wenn mit einem MTJ-Element gepaart, wie für MTJ 420 in 4 gezeigt, wird eine freie Schicht 423 des MTJ-Elements 420 mit dem darunter liegenden ladungstragenden Material 431 verbunden. Wenn Strom durch das Material 431 fließt, kann dieser Strom folglich einen Magnetisierungszustand der freien Schicht 423 von MTJ 420 entsprechend dem Ladungsfluss durch das Material 431 verändern. Der Magnetisierungszustand der freien Schicht 423 des MTJ 420 wird mit Bezug auf die fixierte oder festgesteckte Schicht 421, die in dem gleichen Magnetisierungszustand bleibt, verändert. MTJ 420 schließt auch die Tunnelschicht 422 ein, die eine Isolationsschicht zwischen der freien Schicht 423 und der festgesteckten Schicht 421 bildet.
-
In 4 werden periphere Strukturen gezeigt, um eine MRAM-Konfiguration zu bilden, die das Schreiben und Lesen eines Datenbits durch Änderungen im Magnetisierungszustand des MTJ-Elements 420 ermöglicht. Diese Strukturen schließen einen Lesesteuerungstransistor (440) und einen Schreibsteuerungstransistor (441) ein, sowie verschiedene Steuerungsleitungen. Darüber hinaus beinhaltet Struktur 400 ein Spin-Hall-Metall-(SHM)-Element 430 mit zwei Anschlüssen 432-433 und Spin-Hall-Effekt-Material 431.
-
Der in 4 dargestellte Prozess der SHE-MRAM-Struktur kann entsprechend den in Tabelle 401 angeführten Spannungen fortgeführt werden. Im Betrieb steuert ein erster Steuerungstransistor 440 oder Leseschaltelement einen Lesepfad und ist über einen Gate-Anschluss mit der RWL-Leitung 411 von 4 verbunden. Ein zweiter Steuerungstransistor 441 oder Schreibschaltelement steuert einen Schreibpfad und ist über einen Gate-Anschluss mit der WWL-Leitung 412 von 4 verbunden. Während eines Schreibvorgangs führt, wenn die WWL-Leitung 412 freigegeben wird und der entsprechende Schreibsteuerungstransistor 441 in einem „Ein“-Zustand ist, eine zwischen der Suchleitung (SL) 414 und der Bitleitung (BL) 413 anliegende Spannung einen zugehörigen Strom durch Material 431 zu, der einen Magnetwiderstand oder Magnetisierungszustand der freien Schicht 423 des MTJ-Elements 420 verändern kann. Eine logische ,1' oder ,0' kann in der SHE-MRAM Struktur 400 auf Grundlage der Richtung des Stromflusses zwischen den SL- und BL-Leitungen gespeichert werden. Wenn die RWL-Leitung 411 während eines Lesevorgangs freigegeben wird und der entsprechende Lesesteuerungstransistor 440 in einem ,Ein‘-Zustand ist, kann eine Lesespannung (VREAD ) auf der BL-Leitung 413 herangezogen werden, um einen aktuellen Magnetwiderstand oder Magnetisierungszustand der freien Schicht 423 in Bezug auf die festgesteckte Schicht 421 des MTJ-Elements 420 zu erfassen.
-
Vorteilhafterweise stellt die SHE-MRAM-Struktur in 4 pro Einheit der thermischen Stabilität (Δ) einen niedrigen Strom bereit (d. h. ICHANNEL durch das darunter liegende Material 431), d. h. ein niedriger ICHANNEL /Δ, mit einer effizienten Spin-Generierung pro Ladestromeinheit (d. h. ISPIN/ICHARGE>100 %). Beispielhafte Materialien für Material 431 beinhalten ein Spin-Hall-Metall (SHM) mit unter anderem Wolfram (W) und Tantal (Ta), welches Einfluss auf die thermische Stabilität der SHE-MRAM-Struktur haben kann. In einigen Beispielen werden Beta-(β)-Konfigurationen von W und Ta verwendet, wie beispielsweise β-W-Materialien (Beta-Wolfram oder β-Wolfram) und β-Ta-Materialien (Beta-Tantal oder β-Tantal). Außerdem stellt die SHE-MRAM-Struktur getrennte Lese- und Schreibpfade bereit, die eine längere Lebensdauer der Bauelemente ermöglichen. Insbesondere wird weniger Strom für Lesevorgänge in der SHE-MRAM-Struktur im Vergleich zu anderen MRAM- oder CMOS-Strukturen benötigt, was zu längeren Strukturlaufzeiten führen kann.
-
Wir wenden uns nun einer beispielhafte Implementierung eines SHE-MRAM-Bauelements auf Basis einer TCAM-Zelle zu. 5 veranschaulicht eine verbesserte CAM-/TCAM-Zellstruktur mit SHE(SOT)-MRAM-Elementen. Insbesondere veranschaulicht 5 eine Schaltung 500, die einen ternären inhaltsadressierbaren Speicher (TCAM) auf Basis eines Sechs-Transistor-(6T)-Spin-Hall-Effekt-(SHE) magnetoresistiven Direktzugriffsspeichers (MRAM) aufweist. Zwei SHE-MRAM-Strukturen 540-541 sind in der Schaltung 500 beinhaltet. Jede SHE-MRAM-Struktur weist eine Spin-Bahn-Drehmoment-(SOT)-MTJ-Konfiguration auf, welche einen MTJ (542, 543) einschließt, der mit einer darunter liegenden Spin-Hall-Metall-(SHM)-Schicht (544, 545) verbunden ist. Jede SOT-MTJ-Schicht, die mit der entsprechenden SHM-Schicht verbunden ist, ist eine freie MTJ-Schicht, während nach oben eine Tunnelschicht und eine festgesteckte Schicht der freien MTJ-Schicht folgen. Eine detaillierte Ansicht der Schichten ist zuvor in 4 dargestellt, und die in 5 gezeigte Ansicht ist lediglich veranschaulichend.
-
Wie oben erwähnt, beinhaltet der Schaltkreis 500 einen auf 6T-SHE-MRAM basierenden TCAM. Die sechs Transistoren beinhalten M1-M6. M1 und M2 weisen Lesesteuerungstransistoren 531-532 auf. M3 und M4 weisen Schreibsteuerungstransistoren 533-534 auf. M5 weist einen Vorspannungssteuerungstransistor 535 auf. M6 weist eine Spannunghalterkonfiguration auf, die durch den Transistor 536 gebildet wird. Zusätzlich ist M0 eingeschlossen, der einen Vorladesteuerungstransistor 530 aufweist. In diesem Beispiel weisen M1, M2, M3, M4 und M6 Negativkanal-Metalloxidhalbleiter-(NMOS)-Transistoren auf, während M0 und M5 Positivkanal-Metalloxidhalbleiter-(PMOS)- Transistoren aufweisen. Andere geeignete Schaltelemente oder Auswahlkomponenten können stattdessen für M1, M2, M3, M4 und M6 verwendet werden.
-
Es sollte beachtet werden, dass die Bezeichnung „B“ auf den Steuerungsleitungen in 5 eine logisch komplementäre oder logisch komplementierte Version eines begleitenden Signals anzeigt. Zum Beispiel ist Leitung SLB (517) eine logisch komplementierte Version der Leitung SL (516). Eine komplementierte Version bezieht sich auf eine logische Negation oder logische Inversion eines bestimmten Signals oder logischen Werts. Wenn beispielsweise die Leitung SL auf einem bestimmten Spannungspegel ist, wie zum Beispiel VDD oder eine logische „1“, befindet sich Leitung SLB auf einem komplementierten Spannungspegel, nämlich 0V oder eine logische ,0'.
-
Mit Bezug auf die Struktur der Schaltung 500 sind Lesesteuerungstransistoren 531, 532 (M1, M2) eingeschlossen, um einen Lesestrom durch jede SHM-Schicht (544, 545) für die SHE-MRAM-Strukturen zu steuern. Die Lesesteuerungstransistoren 531, 532 werden durch SL- und SLB-Leitungen (516, 517) gesteuert, welche die Suchleitungen für die Schaltung 500 aufweisen. Die Lesesteuerungstransistoren 531, 532 weisen auch eine entsprechend kleinere Größe auf wegen der kleineren Leseströme für die SOT-MTJ-Strukturen im Vergleich zu den oben besprochenen STT-MTJ-Strukturen. Die Schreibsteuerungstransistoren 533, 534 (M3, M4) sind eingeschlossen, um einen Schreibstrom durch jede SHM-Schicht (544, 545) der SHE-MRAM-Strukturen zu steuern. Die Schreibsteuerungstransistoren 533, 534 werden über WL1- und WL2-Leitungen (514, 515) gesteuert, die Schreibleitungen für Schaltung 500 aufweisen. Somit werden getrennte Lese- und Schreibpfade unter Verwendung von Leseleitungen und Schreibleitungen hergestellt. Schreibsteuerungstransistoren 533, 534 haben auch im Vergleich zu den STT-MTJ-Strukturen aufgrund des großen magnetischen Tunnelwiderstands (TMR) der SOT-MTJ-Konfiguration eine entsprechend kleinere Größe.
-
Weitere Steuerungselemente sind in der TCAM-Zellstruktur von 5 eingeschlossen. Zuerst weist ein Vorladetransistor 530 (M0) ein Vorladeelement auf, das so eingerichtet ist, dass es ML 511 vor einem Lese-/Schreibvorgang auf einen vorbestimmten Spannungspegel wie beispielsweise VDD bringt. Der Vorladetransistor 530 koppelt eine entsprechende Übereinstimmungsleitung 511 mit einer vorbestimmten Spannung als Reaktion auf ein Vorladesteuersignal (PC). Der Vorspannungungstransistor 535(M5) ist eingeschlossen, um eine Spannung auf den gemeinsamen Knoten 523, der von den Lesetransistoren 531, 532 der TCAM-Zellstruktur gemeinsam genutzt wird, vorzuspannen. Der Vorspannungungstransistor 535 ist eingerichtet, um eine Vorspannung an Drain-Anschlüsse des Lesesteuerungstransistors 531 und des Lesesteuerungstransistors 532 als Reaktion auf ein Vorspannungssteuersignal (BIAS) zu leiten. Die Vorspannung hat in der Regel einen niedrigeren Pegel als VDD , beispielsweise Null Volt, oder alternativ eine Feldeffekttransistor-Schwellenspannung (VTH ) für den PMOS-Transistor, der für M5 gezeigt ist.
-
Ein weiteres Element 536 (M6) ist als ein Spannungshalter für ML 511 eingeschlossen. In diesem Beispiel weist das Spannungshalteelement 536 einen mit Dioden verbundenen NMOS-Transistor auf. Der Spannungshalter dient zum Erhalten einer ausreichenden ML 511-Spannung für parallele Suchvorgänge, wenn viele TCAM-Zellen in einem Array zusammen mit der TCAM-Zelle in Schaltung 500 eingeschlossen sind. Das Spannungshalteelement 536 koppelt die Drain-Anschlüsse des Lesesteuerungstransistors 531 und des Lesesteuerungstransistors 532 an eine entsprechende Übereinstimmungsleitung 511. 3 zeigt ein beispielhaftes Array mit vielen TCAM-Zellen. Während der Suchvorgänge wird ML 511 kontinuierlich durch den Spannungshalter 536 in einer TCAM-Zelle entladen, die nicht mit einer Sucheingabe übereinstimmt, als Reaktion auf eine Sucheingabe, die auf den SL-/SLB-Leitungen 516, 517 an die TCAM-Zelle gesandt wird. Wird ML 511 entladen, wird jeder Spannungshalter 536 des TCAM-Zellarray auf einen unterschwelligen Bereich geändert, und eine Spannungsänderung auf ML 511 (ΔVML) wird durch eine logarithmische Skala zusammen mit der Wortlänge der Sucheingabe leicht verringert. Aufgrund der Spannungshalter 536 behält ML 511 jedoch einen ausreichenden Spannungshub bei, um mehr als 0,1 V zu erfassen. Somit wird ML 511 durch eine Übereinstimmung in der TCAM-Zelle langsamer entladen als durch eine Nichtübereinstimmung, und ML 511 verbleibt auch im Falle einer Übereinstimmung über einen längeren Zeitraum auf einem Vorladepegel als im Falle einer Nichtübereinstimmung.
-
Sechs Transistoren werden in dem beispielhaften SHE-MRAM-Bauelement von 5 verwendet, um getrennte Lese- und Schreibpfade zu erzeugen. Somit kann eine größere Strukturgrundfläche im Hinblick auf vergleichbare Vier-Transistor-STT-MRAM-Bauelemente angenommen werden. Die Lesesteuerungstransistoren 531, 532 in dem SHE-MRAM-Bauelement sind jedoch entsprechend klein, und die SOT-MTJ-Struktur in 5 hat eine vergleichsweise kleinere Grundfläche als eine STT-MTJ-Struktur. Obwohl daher zusätzliche Transistorstrukturen in dem SHE-MRAM-Bauelement verwendet werden mögen, um getrennten Lese- und Schreibpfade zu erzeugen, ist der Sechs-Transistor-SHE-MRAM in der Größe mit einer Vier-Transistor-STT-MRAM-Struktur vergleichbar, verbunden mit den weiter oben beschriebenen Vorteilen für getrennte Lese-/Schreibpfade sowie eine verbesserte Leistung und eine verbesserte thermische Stabilität.
-
Wie oben erwähnt, verwendet die Schaltung 500, welche ein Beispiel mit einer verbesserten TCAM- Zellstruktur implementiert, zwei Spin-Bahn-Drehmoment-(SOT)-Magnettunnelkontakt-(MTJ)-Elemente mit darunter liegenden Spin-Hall-Effekt-(SHE)-Schichten, um zwei SHE-MRAM-Strukturen zu bilden. Ein erstes Spin-Bahn-Drehmoment(SOT)-Magnettunnelkontakt-(MTJ)-Element 542 weist eine festgesteckte Schicht auf, die an den ersten Suchsteuerungstransistor 531 gekoppelt ist, der durch die erste Suchleitung 517 gesteuert wird. Das erste SOT-MTJ-Element 542 weist eine Spin-Hall-Effekt-(SHE)Schicht auf, die SHM 544 aufweist. Ein zweites SOT-MTJ-Element 543 weist eine festgesteckte Schicht auf, die mit einem zweiten Suchsteuerungstransistor 532 verbunden ist, der durch die zweite Suchleitung 516 gesteuert wird. Das zweite SOT-MTJ-Element 543 weist auch eine SHE-Schicht auf, die SHM 545 aufweist. Der erste Suchsteuerungstransistor 531 und der zweite Suchsteuerungstransistor 532 können als Lesesteuerungstransistoren bezeichnet werden.
-
SHM 544 ist mit komplementären Schreibeingängen 512, 513 (BL, BLB) in einer ersten Konfiguration verbunden. Wie hierin verwendet, bezieht sich die erste Konfiguration auf eine spezifische Anordnung und einen Satz von Verbindungen zwischen den komplementierten Schreibeingängen 512, 513 (BL, BLB) und SHM 544. Komplementierte Schreibeingänge 512, 513 (BL, BLB) und SHM 544 können in unterschiedlichen Konfigurationen, welche immer noch in dem Umfang der Ansprüche in dieser Offenbarung liegen, angeordnet und verbunden werden. Des Weiteren kann die erste Konfiguration, welche die komplementierten Schreibeingänge 512, 513 (BL, BLB) und SHM 544 beinhaltet, in bestimmten Ausführungsformen auch weitere Komponenten wie etwa Schreibsteuerungstransistor 533 einschließen, welcher zur Steuerung eingerichtet ist, wenn ein Schreibstrom oder eine Spannung an der SHM 544-Komponente angelegt ist. Diese erste Konfiguration koppelt die entsprechende SHE-Schicht entsprechend einer ersten Spannungspolarität in Bezug auf die Schreibeingänge 512, 513 (BL, BLB). In diesem Beispiel wendet der Schreibsteuerungstransistor 533 komplementierte Schreibeingänge 512, 513 an SHE 544 in einer ausgewählten Konfiguration an, um eine Spannung durch SHM 544 entsprechend einer gewünschten Stromflussrichtung herzustellen. Komplementierte Schreibeingänge 512, 513 leiten logisch komplementierte Signalpegel während eines Schreibvorgangs zu SHM 544. Logisch komplementierte Signalpegel weisen jeweils eine entsprechende Spannung auf, die entgegengesetzte logische Zustände repräsentiert, wie beispielsweise ,0' und ,1' neben anderen logischen Darstellungen. Die Leitungen 518, 520 und 522 koppeln weiterhin die Schreibeingänge 512, 513 an SHM 544 über den Schreibsteuerungstransistor 533. Der Schreibsteuerungstransistor 533 wird durch die erste Schreibsteuerungsleitung 514 (WL1) gesteuert.
-
SHM 545 ist mit den komplementierten Schreibeingängen 512, 513 (BL, BLB) in einer zweiten Konfiguration verbunden, auch als eine zweite Konfiguration bezeichnet. Wie hierin verwendet, bezieht sich die zweite Konfiguration auf eine spezifische Anordnung und einen Satz von Verbindungen zwischen den komplementierten Schreibeingängen 512, 513 (BL, BLB) und SHM 545. Komplementierte Schreibeingänge 512, 513 (BL, BLB) und SHM 545 können in unterschiedlichen Konfigurationen, welche immer noch in dem Umfang der Ansprüche in dieser Offenbarung liegen, angeordnet und verbunden werden. Des Weiteren kann die zweite Konfiguration, welche die komplementierten Schreibeingänge 512, 513 (BL, BLB) und SHM 545 beinhaltet, in bestimmten Ausführungsformen auch weitere Komponenten wie etwa Schreibsteuerungstransistor 534 einschließen, welcher zur Steuerung eingerichtet ist, wenn ein Schreibstrom oder eine Spannung an SHM 545 angelegt ist. Diese zweite Konfiguration koppelt die entsprechende SHE-Schicht entsprechend einer zweiten Spannungspolarität in Bezug auf die Schreibeingänge 512, 513 (BL, BLB). In diesem Beispiel wendet der Schreibsteuerungstransistor 534 komplementierte Schreibeingänge 512, 513 an SHE 545 in einer ausgewählten Konfiguration an, um eine Spannung durch SHM 545 entsprechend einer gewünschten Stromflussrichtung herzustellen. Die komplementierten Schreibeingänge 512, 513 führen logisch komplementäre Signalpegel während eines Schreibvorgangs zu SHM 545. Logisch komplementierte Signalpegel weisen jeweils eine entsprechende Spannung auf, die entgegengesetzte logische Zustände repräsentiert, wie beispielsweise ,0' und ,1' neben anderen logischen Darstellungen. Die Leitungen 519, 521 und 522 koppeln weiterhin die Schreibeingänge 512, 513 an SHM 545 über den Schreibsteuerungstransistor 534. Der Schreibsteuerungstransistor 534 wird durch die zweite Schreibsteuerungsleitung 515 (WL2) gesteuert.
-
Die Funktionsweise der auf dem SHE-MRAM-Bauelement basierenden TCAM-Schaltung 500 ist in 6 detailliert dargestellt. Wenn in einem Array verwendet, können viele auf TCAM-Zellen basierende SHE-MRAM angeordnet werden, um Steuerungsleitungen wie beispielsweise Suchleitungen (SL) und Übereinstimmungsleitungen (ML) gemeinsam zu nutzen, wie in dem Beispiel der 3 zu sehen ist. In dieser Konfiguration ist ein Array von TCAM-Zellen in verschiedenen Reihen und Spalten angeordnet.
-
Vor Such-/Lesevorgängen des TCAM können Daten in den TCAM geschrieben werden. Die Schreibsteuerungstransistoren 533, 534 (M3, M4) steuern den Stromfluss durch entsprechende SHM-Schichten 544, 545 für Schreibvorgänge an MTJ-Elementen 542, 543. In einem beispielhaften Schreibvorgang können die WL-Leitungen 514, 515 (WL1/WL2) individuell freigegeben und der entsprechende Schreibsteuerungstransistor (M3, M4) in einen ,Ein‘-Zustand gesetzt werden. Dann leitet eine Spannung, die zwischen den BL- und BLB-Leitungen vorhanden ist, einen entsprechenden Strom durch das darunter liegende SHM-Material, das einen Magnetwiderstand/Magnetisierungszustand der freien Schicht des entsprechenden MTJ-Elements verändern kann. Magnetoresistive Zustände von MTJ-Elementen 542, 543 können in einem parallelen oder antiparallelen Zustand sein. Parallele MTJ-Zustände zeigen an, dass die festgesteckte Schicht und die freie Schicht den gleichen Magnetisierungszustand aufweisen. Antiparallele MTJ-Zustände zeigen an, dass die festgesteckte Schicht und die freie Schicht einen unterschiedlichen Magnetisierungszustand aufweisen. Somit kann eine logische ,1' oder ,0' auf Grundlage der Richtung oder der Polarität des Stromflusses zwischen BL-/BLB-Leitungen gespeichert werden. In diesem Beispiel entspricht eine logische ,1' einem parallelen MTJ-Zustand, während eine logische ,0' einem antiparallelen MTJ-Zustand entspricht, obwohl andere Konfigurationen möglich sind.
-
WL1 ist eingerichtet, um den Schreibsteuerungstransistor 533 (M3) zu steuern und Daten in die linksseitige MTJ-Struktur zu schreiben, wobei die Daten auf dem Stromfluss zwischen den BL/BLB-Leitungen basieren. WL2 ist eingerichtet, um den Schreibsteuerungstransistor 534 (M4) zu steuern und Daten in die rechtsseitige MTJ-Struktur zu schreiben, wobei die Daten auf dem Stromfluss zwischen den BL/BLB-Leitungen basieren. WL1 wird je nach den zu schreibenden Daten gleichzeitig oder sequentiell mit WL2 aktiviert, was zum Teil auf die gemeinsame Nutzung der BL/BLB-Leitungen zurückzuführen ist. 5 oben zeigt beispielhafte Schreibwerte für BL/BLB-Leitungen in einer entsprechenden Wahrheitstabelle.
-
Je nach Richtung oder Polarität des Stromflusses durch die entsprechenden SHM-Schichten 544, 545 kann der Schreibvorgang für jede SHE-MRAM-Struktur 540-541 entweder eine logische ,1' oder ,0' in die entsprechenden SOT-MTJ-Elemente 542, 542 schreiben. Die Tabelle 600 in 6 zeigt Schreibspannungen, um eine logische ,1' oder ,0' in den SOT-MTJ-Elementen 542, 542 zu erreichen. In einem ersten Schreibszenario (MTJ 542=0, MTJ 543=1) kann eine Steuerungsschaltung BL=VDD, BLB=GND bei WL1=WL2=VDD anwenden (d. h. beide M3/M4 eingeschaltet). Dieses erste Schreibszenario schreibt daher sowohl MTJ 542 als auch MTJ 543 zur gleichen Zeit. In einem zweiten Schreibszenario (MTJ 542=1, MTJ 543=0) kann eine Steuerungsschaltung BL=GND, BLB=VDD bei weiterhin WL1=WL2=VDD anwenden. Dieses zweite Schreibszenario schreibt auch sowohl MTJ 542 als auch MTJ 543 zur gleichen Zeit. Jedoch muss in einem dritten Szenario (MTJ 542=0, MTJ 543=0) eine Steuerungsschaltung die SOT-MTJ-Elemente 542, 542 sequentiell schreiben. Zum Beispiel kann eine Steuerungsschaltung BL=VDD, BLB=GND bei WL1=VDD, WL2=GND anwenden, um zuerst eine ,0' in MTJ 542 zu schreiben (d. h. M3 eingeschaltet, M4 ausgeschaltet). Anschließend kann die Steuerungsschaltung auf die Anwendung von BL=GND, BLB=VDD bei WL1=GND, WL2=VDD umschalten, um eine ,0' in MTJ 543 zu schreiben (d. h. M3 abgeschaltet, M4 eingeschaltet).
-
In 6 wird ein zweistufiger Such-/Lesevorgang durch die SHE-MRAM-basierte TCAM-Zelle bereitgestellt, nämlich Vorlade- und Auswertephasen. In der Vorladephase werden die Lesesteuerungstransistoren (M1, M2) über die SL/SLB-Leitungen ausgeschaltet, und die Übereinstimmungsleitung (ML) 511 wird unter Verwendung eines Vorladesteuersignals (PC) auf VDD geladen, um den Vorladetransistor 530 zu aktivieren. Sobald er vorgeladen ist, wird der Vorladetransistor 530 deaktiviert. Dann werden in einer Auswertephase die MRAM-Zellen 540, 541 über die Lesesteuerungstransistoren M1, M2 aktiviert, und die Spannung an ML 511 nimmt durch die MRAM-Zellen 540, 541 allmählich ab. Ein logischer Zustand der MRAM-Zellen 540, 541, der als magnetoresistente Zustände (d. h. Magnetisierungszustände) der MTJ-Elemente 542, 543 gespeichert ist, bestimmt die Entladerate der Spannung an ML 511, und zeigt einen logischen Wert an. Wenn zum Beispiel die auf den SL-/SLB-Leitungen vorhandenen Suchdaten und die in den MTJ-Elementen 542, 543 gespeicherten Daten gleich sind, erfolgt die Entladung von ML 511 relativ langsam, so dass ML 511 in einem relativ hohen Spannungspegel verbleibt, was eine Übereinstimmung als logische ,1' anzeigt. Wenn die auf den SL-/SLB-Leitungen vorhandenen Suchdaten und die in den MTJ-Elementen 542, 543 gespeicherten Daten ungleich sind, erfolgt die Entladung von ML 511 relativ schnell, so dass ML 511 nicht auf einem relativ hohen Spannungspegel bleibt, was eine Nichtübereinstimmung als logische ,0' anzeigt.
-
Die in 6 gezeigte Tabelle 600 stellt weiterhin die Entsprechung zwischen gespeicherten Daten in den MTJ-Elementen 542, 543, den Suchleitungen und Übereinstimmungsleitungen dar. Die magnetoresistenten Zustände der MTJ-Elemente 542, 543 können entweder einen binären Wert ,1' oder ,0' darstellen. Ein ternärer Zustand (,X‘-Wert) wird durch die Struktur der zwei MTJ-Elemente und zugeordneten Steuerungstransistoren/Verbindungen ermöglicht. Die SL-,Such‘-Werte sind in Tabelle 600 gezeigt, die diesen magnetoresistiven Zuständen entsprechen können. Wenn die SL-Werte der Tabelle 600 auf den Suchleitungen (SL/SLB) eines TCAM-Arrays dargestellt werden, kann eine Ausgabe auf den Übereinstimmungsleitungen des TCAM-Arrays angezeigt werden. Diese Ausgabe zeigt eine Übereinstimmung oder eine Nichtübereinstimmung als Antwort auf die Suchleitungswerte an.
-
Eine Steuerungsschaltung, wie zum Beispiel eine diskrete Steuerlogik, integrierte Steuerlogik, Verarbeitungsvorrichtungen, Firmware, Software oder andere Steuerungselemente, kann eingesetzt werden, um Steuerungsvorgänge der in 5 dargestellten Schaltung zu steuern. Diese Steuerungsschaltung kann in eine oder mehrere Instanzen der Schaltung in 5 integriert werden. Wenn beispielsweise ein Array von TCAM-Zellen unter Verwendung der Schaltung in 5 gebildet wird, kann die Steuerungsschaltung mit den gemeinsamen Steuerungsleitungen für TCAM-Zellen matrixartig in Reihen und Spalten gekoppelt werden. Insbesondere können die SL-/SLB-, WL1-/WL2- und BL-/BLB-Leitungen mit der Eingangstreiberschaltung verbunden werden, wie in 3 zu sehen ist. Übereinstimmungsleitungen (ML) können mit Leseverstärkern und weiteren Ausgangsschaltkreisen zur Darstellung von Datenübereinstimmungszuständen an weitere Schaltungen oder Verarbeitungsvorrichtungen verbunden werden. Bei Verwendung in einer neuronalen Netzschaltung, wie in 2 zu sehen, kann diese TCAM-Anordnung verwendet werden, um den Betrieb des neuronalen Netzes zu beschleunigen sowie den Energieverbrauch des neuronalen Netzes zu verringern, wenn Übereinstimmungen innerhalb des TCAM-Arrays für Eingabedaten gefunden werden.
-
In einer weiteren beispielhaften Schaltung, welche als TCAM-Zelle verwendet werden kann, weist eine erste magnetoresistive Direktzugriffsspeicherstruktur (MRAM) ein erstes Magnettunnelkontakt-(MTJ)-Element auf, das an einer entsprechenden freien Schicht mit einer ersten Spin-Hall-Metallschicht (SHM) gekoppelt ist. Dieses erste MTJ-Element ist an einer zugehörigen festgesteckten Schicht mit einem ersten Lesesteuerungstransistor (M1) verbunden, der durch eine erste Suchleitung (SLB) gesteuert wird. Die erste SHM-Schicht weist einen ersten Anschluss auf, der mit einem ersten Schreibsteuerungstransistor (M3) verbunden ist, der durch eine erste Schreibleitung (WL1) gesteuert wird, und einen zweiten Anschluss, der mit einer Bitleitung (BL) verbunden ist. Eine zweite MRAM-Struktur weist ein zweites MTJ-Element auf, das an einer entsprechenden freien Schicht mit einer zweiten SHM-Schicht verbunden ist. Dieses zweite MTJ-Element ist an einer entsprechenden festgesteckten Schicht mit einem zweiten Lesesteuerungstransistor (M2) verbunden, der von einer zweiten Suchleitung (SL) gesteuert wird. Die zweite SHM-Schicht weist einen ersten Anschluss auf, der mit einem zweiten Schreibsteuerungstransistor (M4) verbunden ist, der durch eine zweite Schreibleitung (WL2) gesteuert wird, und einen zweiten Anschluss, der mit der Bitleitung (BL) verbunden ist. Die Schaltung kann einen Vorspannungstransistor (M5) beinhalten, der eingerichtet ist, um eine Vorspannung an den ersten Lesesteuerungstransistor (M1) und den zweiten Lesesteuerungstransistor (M2) zu leiten. Wenn diese Schaltung in einem Array verwendet wird, das mehr als eine TCAM-Zelle aufweist, welche die ML gemeinsam nutzen, kann sie ein zwischen einer Übereinstimmungsleitung und der Vorspannung gekoppeltes Spannungshalteelement (M6) sowie ein Vorladeelement (M0) einschließen, das mit der Übereinstimmungsleitung (ML) verbunden ist.
-
7 zeigt einen zusätzlichen beispielhaften Betrieb der oben besprochenen Schaltung, wie zum Beispiel für 5. In 7 wird der Schreibvorgang 700 in den Vorgängen 701-702 erörtert, während der Such- oder Lesevorgang 710 in den Vorgängen 703-705 beschrieben wird. Ausführlich beschriebene Vorgänge sind auch für einige Vorgänge in 7 dargestellt, um weitere Details zu jedem zugehörigen Schritt bereitzustellen.
-
Bei dem Schreibvorgang 700 schreibt eine Steuerungsschaltung Daten in ein erstes Spin-Bahn-Drehmoment-(SOT)-Magnettunnelkontakt-(MTJ)-Element einer TCAM-Zelle. Mit Bezug auf Elemente in 5 kann eine Steuerungsschaltung (701) Daten in die erste MRAM-Struktur (540) durch mindestens eine Aktivierung eines ersten Schreibsteuerungstransistors 533 (M3) schreiben und einen Schreibspannungspegel zwischen einem ersten Anschluss (520) des ersten SHM 544 und einem zweiten Anschluss (522) des ersten SHM 544 bereitstellen, um einen Strom durch den ersten SHM 544 zu erzeugen, der einen Magnetisierungszustand des ersten MTJ-Elements 542 in Übereinstimmung mit den Daten verändert. Die Steuerungsschaltung (702) kann Daten in eine zweite MRAM-Struktur (541) schreiben, indem sie zumindest einen zweiten Schreibsteuerungstransistor 534 (M4) aktiviert und einen Schreibspannungspegel zwischen einem ersten Anschluss (521) des zweiten SHM 545 und einem zweiten Anschluss (522) des zweiten SHM 545 bereitstellt, um einen Strom durch den zweiten SHM 545 zu erzeugen, der einen Magnetisierungszustand des zweiten MTJ-Elements 543 in Übereinstimmung mit der komplementierten Datenversion verändert. Die Schreibspannung wird in die Schaltung zwischen den Leitungen BLB und BL (512, 513) in 5 geleitet.
-
Beim Lesevorgang 710 liest eine Steuerungsschaltung aus einer TCAM-Zelle. Typischerweise sind viele TCAM-Zellen matrixartig angeordnet, und der Lesevorgang überspannt viele TCAM-Zellen parallel. Dieser Lesevorgang wird oft als Suchvorgang bezeichnet. In Bezug auf Elemente von 5 kann eine Steuerungsschaltung (703) zuerst eine Übereinstimmungsindikatorleitung, nämlich Übereinstimmungsleitung (ML) 511, auf eine vorbestimmte Spannung vorladen. Das Vorladen wird ausgeführt, indem zumindest der erste Lesesteuerungstransistor 531 (M1) und der zweite Lesesteuerungstransistor 532 (M2) deaktiviert werden und anschließend ML 511 mit dem Vorladeelement 530 (M0) auf die vorbestimmte Spannung gebracht wird. Das Vorladeelement oder der Transistor 530 wird unter Verwendung der PC-Steuerungsleitung 527 gesteuert.
-
Nach der Vorladung der ML 511 kann eine Suche oder ein Lesevorgang (704) einen Datenübereinstimmungszustand innerhalb der TCAM-Zelle durch Auswertung von Eingabedaten gegenüber den zuvor in der ersten MRAM Struktur 540 und der zweiten MRAM Struktur 541 gespeicherten Daten evaluieren. Ein Datenübereinstimmungszustand zeigt die Auswertung eines TCAM-Zellenergebnisses aus Such- oder Lesedaten an, die auf Such- oder Leseleitungen übertragen wurden. Dieser Datenübereinstimmungszustand kann eine binäre Übereinstimmung, binäre Nichtübereinstimmung, ternäre Übereinstimmung, ternäre Nichtübereinstimmung oder ein anderes Ergebnis anzeigen, das angibt, wie in der TCAM-Zelle gespeicherte Daten mit den Suchdaten verglichen werden. Diese Bewertung wird durchgeführt, indem zumindest der erste Lesesteuerungstransistor 531 (M1) und der zweite Lesesteuerungstransistor 532 (M2) aktiviert werden, während komplementierte Suchdaten auf der ersten Suchleitung 517 (SLB) und der zweiten Suchleitung 516 (SL) bereitgestellt werden, um als Antwort eine resultierende Ausgabespannung (705) an ML 511, die den Datenübereinstimmungszustand darstellt, anzulegen. Zum Teil aufgrund der Tatsache, dass das Spannungshalteelement 536 (M6) es M1 und M2 ermöglicht, Strom von ML 511 über den gemeinsamen Knoten 523 abzuziehen, weist eine resultierende Spannung an ML 511 eine vorbestimmte Spannung auf, wenn eine Übereinstimmung zwischen den Suchdaten und den in dem ersten SOT-MTJ 542 und zweitem SOT-MTJ 543 gespeicherten Daten bestimmt wurde. Die resultierende Spannung weist einen Spannungspegel unter der vorbestimmten Spannung auf, wenn eine Nichtübereinstimmung zwischen den Suchdaten und den im ersten SOT-MTJ 542 und zweiten SOT-MTJ 543 gespeicherten Daten festgestellt wird. Insbesondere entlädt ein Übereinstimmungszustand ML 511 langsamer als ein Nichtübereinstimmungszustand, und somit ermöglicht eine Übereinstimmung, dass die vorgeladene Spannung auf ML 511 über einem spezifizierten Schwellenwert länger verbleibt, als dies bei einer Nichtübereinstimmung der Fall ist.
-
Wie hierin erörtert, weisen auf SHE-MRAM-Bauelementen basierende TCAMs mehrere Vorteile gegenüber STT-MRAM-TCAMs auf. Zum Beispiel weisen auf SHE-MRAM-Bauelementen basierende TCAMs schnellere Suchvorgänge auf, indem sie größere Leseströme im Vergleich zu auf STT-MRAM-Bauelementen basierenden TCAMs verwenden. Auf SHE-MRAM-Bauelementen basierende TCAMs sind robuster gegenüber Datenhaltefehlern, da sie teilweise getrennte Lese-/Schreibpfade aufweisen, die von SOT-MRAM-Elementen aktiviert werden. Es werden auch niedrige Schreibströme durch die SOT-MRAM-Elemente aktiviert, während immer noch eine statische Verlustleistung von nahezu Null und eine kompakte Bit-Zellengröße im Vergleich zu auf CMOS basierenden TCAMs aufrecht erhalten wird. Der Flächenmehraufwand zur Herstellung von Elementen einer auf SHE-MRAM-Bauelementen basierenden TCAM-Schaltung, in 5 dargestellt, ist ebenfalls vorteilhaft. Zum Beispiel können die Transistoren M1, M2 teilweise kleiner sein als diejenigen in STT- oder CMOS-basierten TCAMs, da M1, M2 nur für Lesevorgänge verwendet werden. Obwohl zwei zusätzliche Schreibsteuerungstransistoren (M3, M4) in dem auf SHE-MRAM-Bauelementen basierenden TCAM verwendet werden, sind diese Transistoren aufgrund des vergleichsweise geringen SOT-MRAM-Schreibstroms relativ klein.
-
Somit kann die hier dargestellte SHE-MRAM-Konfiguration die Lesegeschwindigkeit von TCAM-Zellen mit größeren Leseströmen durch Erhöhen der thermischen Stabilität verstärken, da der entsprechende Schreibaufwand aufgrund der hohen Effizienz der Spin-Polarisierung nicht signifikant ist. Auf SHE-MRAM-Bauelementen basierende TCAMs können erfolgreich in SOT-MRAM-basierten künstlichen neuronalen Netzen verwendet werden, wie jenen, die oben in 2 besprochen wurden.
-
8 veranschaulicht das Rechensystem 801, das für jedes System oder jede Sammlung von Systemen repräsentativ ist, in dem die verschiedenen hierin offenbarten Betriebsarchitekturen, Szenarien und Prozesse implementiert werden können. Zum Beispiel kann das Rechensystem 801 verwendet werden, um die Steuerungsschaltung für Elemente in 1, Steuerungsabschnitte von Elementen in 2 sowie FPU-Stufen der 2, Steuerungsschaltung 360 von 3, Steuerungsschaltung von 5 und andere hierin besprochene Schaltungen zu implementieren. Darüber hinaus kann das Rechensystem 801 zum Speichern von Schreibdaten vor der Speicherung in TCAM-Zellen verwendet werden und Suchergebnisse nach dem abgeschlossenen Suchvorgang speichern. In weiteren Beispielen kann das Rechensystem 801 eine Verbindungsschaltung einrichten, um ein oder mehrere Arrays von TCAM-Zellen herzustellen oder TCAM-Zellen zu künstlichen neuronalen Netzschaltungen zu verknüpfen. In noch weiteren Beispielen kann das Rechensystem 801 vollständig ein künstliches neuronales Netz implementieren, wie in 2 dargestellt, um ein zumindest teilweise in Software implementiertes künstliches neuronales Netz mit extern implementierten, verbesserten TCAM-Zellstrukturen zu erzeugen. Das Rechensystem 801 kann die Steuerung aller hierin beschriebenen TCAM-Zelloperationen implementieren, unabhängig davon, ob sie mit Hardware- oder Softwarekomponenten oder einer beliebigen Kombination davon implementiert sind.
-
Beispiele des Rechensystems 801 beinhalten, sind aber nicht begrenzt auf, Computer, Smartphones, Tablet-Rechenvorrichtungen, Laptops, Desktop-Computer, Hybridrechner, Rack-Server, Web-Server, Cloud-Computing-Plattformen, Cloud-Computing-Systeme, verteilte Rechnersysteme, softwaredefinierte Netzwerk-Systeme, und Data-Center-Ausrüstung, sowie jede andere Art realer oder virtueller Maschinen und andere Rechensysteme und Vorrichtungen, sowie jede Variation oder Kombination davon.
-
Das Rechensystem 801 kann als ein einzelnes Gerät, ein einzelnes System oder eine einzelne Vorrichtung implementiert sein oder kann in verteilter Weise als mehrere Geräte, Systeme oder Vorrichtungen implementiert sein. Das Rechensystem 801 beinhaltet, ist aber nicht darauf beschränkt, das Verarbeitungssystem 802, das Speichersystem 803, die Software 805, das Kommunikationsschnittstellensystem 807 und das Benutzerschnittstellensystem 808. Das Verarbeitungssystem 802 ist operativ mit dem Speichersystem 803, dem Kommunikationsschnittstellensystem 807 und dem Benutzerschnittstellensystem 808 verbunden.
-
Das Verarbeitungssystem 802 lädt und führt Software 805 von dem Speichersystem 803 aus. Die Software 805 beinhaltet die TCAM-Steuerungsumgebung 820, die repräsentativ für die in Bezug auf die vorangegangenen Figuren besprochenen Prozesse ist. Wenn sie vom Verarbeitungssystem 802 ausgeführt wird, um TCAM-Vorgänge oder ANN-Vorgänge zu implementieren und zu verbessern, weist die Software 805 das Verarbeitungssystem 802 an, wie hierin beschrieben zu arbeiten, und zwar zumindest für die verschiedenen Prozesse, Betriebsszenarien und Abläufe, die in den vorstehenden Implementierungen beschrieben sind. Das Rechensystem 801 kann optional zusätzliche Vorrichtungen, Merkmale oder Funktionsweisen einschließen, die der Kürze halber nicht erläutert wurden.
-
Bezugnehmend auf 8 kann das Verarbeitungssystem 802 einen Mikroprozessor und eine Verarbeitungsschaltung aufweisen, welche Software 805 von dem Speichersystem 803 abruft und ausführt. Das Verarbeitungssystem 802 kann innerhalb einer einzigen Verarbeitungsvorrichtung implementiert sein, kann aber auch über mehrere Verarbeitungsvorrichtungen, Subsysteme oder spezielle Schaltungen verteilt sein, die beim Ausführen von Programmanweisungen und beim Ausführen der hierin erörterten Vorgänge zusammenarbeiten. Beispiele des Verarbeitungssystems 802 beinhalten allgemeine zentrale Verarbeitungseinheiten, anwendungsspezifische Prozessoren und logische Bauelemente, sowie jede andere Art von Verarbeitungsvorrichtung, Kombinationen oder Variationen davon.
-
Das Speichersystem 803 kann jedes beliebige computerlesbare Speichermedium aufweisen, das vom Verarbeitungssystem 802 gelesen werden kann und in der Lage ist, Software 805 zu speichern, und in der Lage ist, optional TCAM-Eingabe-/Ausgabewerte 810 zu speichern. Das Speichersystem 803 kann flüchtige und nichtflüchtige, entfernbare und nicht entfernbare Medien einschließen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen implementiert sind, wie computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten. Beispiele für Speichermedien beinhalten Direktzugriffsspeicher, Nur-Lese-Speicher, Magnetplatten, optische Platten, Flash-Speicher, virtuelle Speicher und nicht virtuelle Speicher, Magnetkassetten, Magnetband, Magnetspeicher oder andere magnetische Speichereinrichtungen, magnetische Direktzugriffsspeichereinrichtungen, Phasenwechselspeichermedien oder irgendwelche andere geeignete nichtflüchtige Speichermedien.
-
Zusätzlich zu computerlesbaren Speichermedien kann das Speichersystem 803 in einigen Implementierungen auch computerlesbare Kommunikationsmedien einschließen, über die zumindest ein Teil der Software 805 intern oder extern kommuniziert werden kann. Das Speichersystem 803 kann als eine einzige Speichervorrichtung implementiert werden, kann aber auch über mehrere Speichervorrichtungen oder Subsysteme hinweg implementiert werden, die zusammengelegt oder relativ zueinander verteilt sind. Das Speichersystem 803 kann weitere Elemente aufweisen, wie beispielsweise eine Steuerung, die in der Lage ist, mit dem Verarbeitungssystem 802 oder gegebenenfalls anderen Systemen zu kommunizieren.
-
Die Software 805 kann in Programmanweisungen implementiert werden und kann unter anderem, wenn sie durch das Verarbeitungssystem 802 ausgeführt wird, das Direktverarbeitungssystem 802 in Bezug auf die verschiedenen hierin dargestellten Betriebsszenarien, Abläufe und Prozesse wie beschrieben betreiben. Zum Beispiel kann die Software 805 neben anderen Prozessen Programmanweisungen zum Steuern und Verbinden mit verbesserten TCAM-Schaltungen beinhalten.
-
Insbesondere können die Programmanweisungen verschiedene Komponenten oder Module einschließen, die zusammenarbeiten oder auf andere Weise interagieren, um die verschiedenen hierin beschriebenen Prozesse und Betriebsszenarien auszuführen. Die verschiedenen Komponenten oder Module können in kompilierten oder interpretierten Anweisungen oder in einer anderen Variation oder Kombination von Anweisungen verkörpert sein. Die verschiedenen Komponenten oder Module können synchron oder asynchron, seriell oder parallel, in einer Umgebung mit einem einzigen Thread oder mit mehreren Threads oder gemäß einem beliebigen anderen geeigneten Ausführungsparadigma, einer Variation oder einer Kombination davon ausgeführt werden. Die Software 805 kann zusätzliche Prozesse, Programme oder Komponenten einschließen, wie Betriebssystemsoftware oder eine andere Anwendungssoftware zusätzlich zu oder einschließlich der TCAM-Steuerungsumgebung 820. Die Software 805 kann auch Firmware oder irgendeine andere Form von maschinenlesbaren Verarbeitungsbefehlen aufweisen, die durch das Verarbeitungssystem 802 ausführbar sind.
-
Im Allgemeinen kann die Software 805, wenn sie in das Verarbeitungssystem 802 geladen und ausgeführt wird, ein geeignetes Gerät, ein System oder eine Vorrichtung (wobei das Rechensystem 801 repräsentativ ist) im Wesentlichen aus einem allgemeinen Rechensystem in ein spezielles Rechensystem umwandeln, das gestaltet wurde, um eine Steuerung und eine Schnittstelle mit einer verbesserten TCAM-Schaltung zu erleichtern. Infolgedessen kann die Codiersoftware 805 auf dem Speichersystem 803 die physische Struktur des Speichersystems 803 transformieren. Die spezifische Umwandlung der physischen Struktur kann von verschiedenen Faktoren in unterschiedlichen Implementierungen dieser Beschreibung abhängen. Beispiele solcher Faktoren können die Technologie beinhalten, die verwendet wird, um das Speichermedium des Speichersystems 803 zu implementieren, und ob die Computerspeichermedien Eigenschaften von Primär- oder Sekundärspeichern aufweisen, sowie andere Faktoren, sind aber nicht darauf beschränkt.
-
Wenn beispielsweise die computerlesbaren Speichermedien als halbleiterbasierter Speicher implementiert sind, kann die Software 805 den physischen Zustand des Halbleiterspeichers transformieren, wenn die Programmanweisungen darin kodiert werden, beispielsweise durch Transformieren des Zustands von Transistoren, Kondensatoren oder anderen diskreten Schaltungselementen, die den Halbleiterspeicher bilden. Eine ähnliche Transformation kann in Bezug auf magnetische oder optische Medien auftreten. Andere Transformationen von physischen Medien sind möglich, ohne vom Umfang der vorliegenden Beschreibung abzuweichen, wobei die vorstehenden Beispiele nur vorgesehen sind, um die vorliegende Erläuterung zu erleichtern.
-
Die TCAM-Steuerungsumgebung 820 beinhaltet eine oder mehrere Softwareelemente, wie beispielsweise OS 821 und Anwendungen 822. Diese Elemente können verschiedene Abschnitte des Rechensystems 801 beschreiben, in dem Elemente der TCAM-Arrays, TCAM-Zellen, Steuerungssysteme, künstliche neuronale Netze oder externe Systeme verknüpft werden oder interagieren. Zum Beispiel kann das OS 821 eine Softwareplattform bereitstellen, auf der die Anwendung 822 ausgeführt wird und die verbesserte TCAM-Prozesse und eine verbesserte Steuerung ermöglicht.
-
In einem Beispiel schließt die TCAM-Steuerungsumgebung 820 die TCAM-Steuerung 823 ein. Die TCAM-Steuerung 823 kann den TCAM-Lese-/Schreib-(L/S)Dienst 824 und den GPU-TCAM-Dienst 825 einschließen. Der TCAM-L/S-Dienst 824 kann das Schreiben von Daten in TCAM-Zellen oder Arrays über entsprechende Schreibsteuerungsleitungen und Schreibdatenleitungen steuern, wie beispielsweise WL1/WL2 und BL/BLB in 5. Der TCAM-L/S-Dienst 824 kann das Aktivieren/Deaktivieren von Schreibsteuerungstransistoren in der richtigen Sequenz zum korrekten Schreiben von Daten in die TCAM-Zellen und TCAM-Arrays steuern. Der TCAM-L/S-Dienst 824 kann auch Such- oder Lesevorgänge ausführen. Der TCAM-L/S-Dienst 824 kann die Suche nach Übereinstimmungen von Daten, die zuvor in die TCAM-Zellen oder die TCAM-Arrays geschrieben wurden, unter Verwendung von Vorspannungssteuerungsleitungen, Vorlade-Steuerungsleitungen, Suchdatenleitungen und Lesetransistorsteuerungsleitungen wie PC, BIAS, und SL-/SLB-Leitungen in 5 steuern. Der TCAM-L/S-Dienst 824 kann Ergebnisse lesen, die auf Übereinstimmungsleitungen (MLs) vorliegen. In einigen Beispielen kann der TCAM-L/S-Dienst 824 Ausgangs-Encoder/Decoder oder Multiplexer-Logik implementieren, um diskrete Suchergebniswerte in Bitvektoren zusammenzufassen oder mehrere von einem TCAM erzeugte Suchübereinstimmungsausgaben zu verarbeiten. Der TCAM-L/S-Dienst 824 kann über die Kommunikationsschnittstelle 807 resultierende Suchanzeigen von Übereinstimmungen/Nichtübereinstimmungen an ein oder mehrere weitere Systeme übertragen oder die resultierende Suchanzeige einer Übereinstimmung/Nichtübereinstimmung einem oder mehreren Benutzern über das Benutzerschnittstellensystem 808 präsentieren.
-
Der GPU-TCAM-Dienst 825 kann Steuerfunktionalität einschließen, wenn TCAM-Strukturen in GPU-implementierten KNNs oder CNNs verwendet werden. Der GPU-TCAM-Dienst 825 kann Eingaben zu GPU- oder GPGPU-basierten KNNs vorlegen. Diese Eingaben können gleichzeitig den TCAM-Strukturen als Eingabesuchdaten vorgelegt werden. Der GPU-TCAM-Dienst 825 kann steuern, wann Daten in einen Assoziativspeicher mit einem TCAM auf Grundlage der durch ein zugeordnetes KNN/CNN bestimmten häufigen Ergebnisse geschrieben werden sollen. Der GPU-TCAM-Dienst 825 kann das Freigeben oder Sperren von Pipeline-Stufen in GPU/FPU-Pipelines steuern, wenn TCAM-Treffer unter Verwendung von Eingabedaten angetroffen werden. Der GPU-TCAM-Dienst 825 kann Ausgabeschaltungen implementieren, wie z. B. Multiplex-Schaltungen, um aus den Ergebnissen der FPU-Stufen oder TCAM-Strukturen auszuwählen, die auf TCAM-Treffern basieren, die mit den Eingabedaten gefunden wurden.
-
Das Kommunikationsschnittstellensystem 807 kann Kommunikationsverbindungen und -vorrichtungen einschließen, die eine Kommunikation mit anderen Rechensystemen (nicht gezeigt) über Kommunikationsnetzwerke (nicht gezeigt) ermöglichen. Das Kommunikationsschnittstellensystem 807 könnte auch mit Teilen von hardwareimplementierten KNNs kommunizieren, wie beispielsweise mit Schichten von KNNs oder TCAM-Strukturen und Schaltungen. Beispiele von Verbindungen und Vorrichtungen, die zusammen eine Kommunikation zwischen Systemen ermöglichen, können NVM-Speicherschnittstellen, Netzwerkschnittstellenkarten, Antennen, Leistungsverstärker, RF-Schaltungen, Transceiver und andere Kommunikationsschaltungen einschließen. Die Verbindungen und Vorrichtungen können über Kommunikationsmedien kommunizieren, um Kommunikationen oder Daten mit anderen Rechensystemen oder Systemnetzwerken, wie etwa Metall, Glas, Luft oder jedem anderen geeigneten Kommunikationsmedium, auszutauschen.
-
Das Benutzerschnittstellensystem 808 ist optional und kann eine Tastatur, eine Maus, eine Spracheingabevorrichtung, eine Berührungseingabevorrichtung zum Empfangen einer Eingabe von einem Benutzer einschließen. Ausgabevorrichtungen wie zum Beispiel ein Display, Lautsprecher, Web-Schnittstellen, Anschlussschnittstellen und andere Arten von Ausgabevorrichtungen können ebenfalls in dem Benutzerschnittstellensystem 808 eingeschlossen sein. Das Benutzerschnittstellensystem 808 kann über eine Datenschnittstelle oder Netzwerkschnittstelle, wie beispielsweise das Kommunikationsschnittstellensystem 807, Ausgaben bereitstellen und Eingaben empfangen. Das Benutzerschnittstellensystem 808 kann auch zugehörige Benutzerschnittstellensoftware einschließen, die durch das Verarbeitungssystem 802 mit Unterstützung der verschiedenen Benutzereingabe- und -ausgabevorrichtungen, die oben erläutert wurden, ausführbar ist. Separat oder in Verbindung miteinander und mit anderen Hardware- und Softwareelementen können die Benutzerschnittstellensoftware und Benutzerschnittstellenvorrichtungen eine graphische Benutzerschnittstelle, eine natürliche Benutzerschnittstelle oder irgendeine andere Art von Benutzerschnittstelle unterstützen.
-
Die Kommunikation zwischen dem Rechensystem 801 und anderen Rechensystemen (nicht gezeigt) kann über eine Netzwerkkommunikation oder Netzwerke und in Übereinstimmung mit verschiedenen Kommunikationsprotokollen, Kombinationen von Protokollen oder Variationen davon erfolgen. Beispiele beinhalten Intranets, Internets, das Internet, lokale Netzwerke, Weitverkehrsnetze, drahtlose Netzwerke, drahtgebundene Netzwerke, virtuelle Netzwerke, softwaredefinierte Netzwerke, Datencenter-Busse, Computing-Backplanes oder jede andere Art von Netzwerk, Kombination von Netzwerken oder Variationen davon. Die oben erwähnten Kommunikationsnetze und Protokolle sind wohlbekannt und bedürfen hier keiner ausführlichen Erörterung. Jedoch schließen einige Kommunikationsprotokolle, die verwendet werden können, das Internet-Protokoll (IP, IPv4, IPv6, usw.), das Übertragungssteuerungsprotokoll (TCP) und das Benutzerdatagrammprotokoll (UDP) ein, ohne darauf beschränkt zu sein, sowie beliebige andere geeignete Kommunikationsprotokolle, Variationen oder Kombinationen davon.
-
Die beigefügten Beschreibungen und Figuren zeigen spezifische Ausführungsformen, um Fachleute zu lehren, wie der beste Modus herzustellen und zu verwenden ist. Zum Zweck der Lehre der erfinderischen Prinzipien wurden einige herkömmliche Aspekte vereinfacht oder weggelassen. Der Fachmann wird Variationen von diesen Ausführungsformen erkennen, die in den Schutzumfang der Offenbarung fallen. Der Fachmann wird auch erkennen, dass die oben beschriebenen Merkmale auf verschiedene Weisen kombiniert werden können, um mehrere Ausführungsformen zu bilden. Im Ergebnis ist die Erfindung durch die oben beschriebenen spezifischen Ausführungsformen beschränkt, sondern nur durch die Ansprüche und ihre Entsprechungen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-