DE102013224082A1 - System und Verfahren zur Ausführung einer SRAM-Schreibunterstützung - Google Patents

System und Verfahren zur Ausführung einer SRAM-Schreibunterstützung Download PDF

Info

Publication number
DE102013224082A1
DE102013224082A1 DE102013224082.1A DE102013224082A DE102013224082A1 DE 102013224082 A1 DE102013224082 A1 DE 102013224082A1 DE 102013224082 A DE102013224082 A DE 102013224082A DE 102013224082 A1 DE102013224082 A1 DE 102013224082A1
Authority
DE
Germany
Prior art keywords
memory cell
bit line
supply voltage
voltage
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102013224082.1A
Other languages
English (en)
Other versions
DE102013224082B4 (de
Inventor
Brian Matthew Zimmer
Mahmut Ersin Sinangil
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013224082A1 publication Critical patent/DE102013224082A1/de
Application granted granted Critical
Publication of DE102013224082B4 publication Critical patent/DE102013224082B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits

Abstract

Es werden ein Verfahren und ein System zur Ausführung einer Schreibunterstützung bereitgestellt. Eine Schreibunterstützungsschaltung wird initialisiert und es wird ein Spannungseinbruch initiiert, um eine Spaltenversorgungsspannung, die einer Speicherzelle zugeleitet ist, zu reduzieren. Eine Bitleitung der Speicherzelle wird auf einen Boost-Spannungspegel gewoben, der unter einer tiefen Versorgungsspannung, die der Speicherzelle zugeleitet ist, liegt, und es werden Daten, die von der Bitleitung kodiert sind, in die Speicherzelle geschrieben.

Description

  • Diese Erfindung wurde mit US-Regierungsunterstützung unter LLNS Nebenvertrag B599861, zuerkannt von DOE, gemacht. Die US-Regierung hat gewisse Rechte an dieser Erfindung.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Speicherschaltungen und insbesondere eine Schreibunterstützung.
  • HINTERGRUND
  • Die Verringerung der Betriebsspannungsversorgung (Vmin) ist eine effektive Strategie, um die Energieeffizienz für integrierte Schaltungen zu verbessern. Jedoch können Schreiboperationen für Speicherzellen eines statischen Speicher mit wahlfreiem Zugriff (SRAM) bei tieferen Betriebsversorgungsspannungen aufgrund von Schwankungen der Schaltungseigenschaften, etwa Schwellwertspannungen, die sich aus der Herstellungstechnik und/oder dem Alter des integrierten Schaltungsbauelements ergeben, unzuverlässig werden.
  • Um eine konventionelle 6-Transistor-Speicherzelle zu beschreiben, werden die zu schreibenden Daten als differentielle Werte auf Bitleitungen (BL und BLB) kodiert. Beispielsweise wird ein Datenpunkt = 0 kodiert als BL = 0 und BLB = 1 und ein Datenpunkt = 1 wird als BL = 1 und BLB = 0 kodiert, wobei 1 (WAHR) ein hoher Spannungspegel und 0 (FALSCH) ein tiefer Spannungspegel ist. Wenn eine Wortleitung aktiviert wird, werden NMOS-(Metall-Oxid-Halbleiter vom N-Typ)Transistor-Durchlassgatter, die ein Paar aus Bitleitungen an das Speicherelement koppeln, in der Speicherzelle aktiviert. Die Durchlassgatter müssen die Stärke der kreuzgekoppelten Inverter übertreffen, die das Speicherelement bilden, um den Inhalt der Speicherzelle so zu ändern, dass er mit den auf den Bitleitungen kodierten Daten übereinstimmt, wodurch die Schreiboperation beendet ist. Insbesondere kann eine Schwankung der Schaltungseigenschaften einen PMOS-(Metall-Oxid-Halbleiter von p-Typ)Hochzieh-Transistor des Speicherelements stärker machen und ein NMOS-Durchlassgatter schwächen, wodurch ein Übergang von einer 0, die auf einer der Bitleitungen kodiert ist, in das Speicherelement verhindert wird. Als Folge davon kann die SRAM-Speicherzelle nicht zuverlässig beschrieben werden.
  • Es besteht somit eine Notwendigkeit für eine Lösung des Problems der Schreibzuverlässigkeit und/oder andere Probleme, die mit dem Stand der Technik verknüpft sind.
  • ZUSAMMENFASSUNG
  • Es werden ein System und ein Verfahren zum Ausführen einer Schreibunterstützung bereitgestellt. Eine Schreibunterstützungsschaltung wird initialisiert und es wird ein Spannungseinbruch initiiert, um eine Spaltenversorgungsspannung, die einer Speicherzelle zugeleitet ist, zu reduzieren. Es wird eine Bitleitung der Speicherzelle auf einen Boost-Spannungspegel gesetzt, der unter einer unteren Versorgungsspannung liegt, die der Speicherzelle zugeleitete ist, und Daten, die durch die Bitleitung kodiert sind, werden in die Speicherzelle geschrieben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1A zeigt ein Flussdiagramm eines Verfahrens zur Ausführung einer Schreibunterstützung unter Anwendung einer gekoppelten Versorgungsspannung und Bitleitung gemäß einer Ausführungsform.
  • 1B zeigt eine Speicherzellenschaltung, die mit einer programmierbaren Schreibunterstützungsschaltung gemäß einer Ausführungsform gekoppelt ist.
  • 2A zeigt die programmierbare Schreibunterstützungsschaltung aus 1B gemäß einer Ausführungsform.
  • 2B zeigt ein weiteres Flussdiagramm eines Verfahrens zur Ausführung einer Schreibunterstützung unter Anwendung eines Einbruchs der Versorgungsspannung und einer negativen Bitleitungshochsetzung gemäß einer Ausführungsform.
  • 3A zeigt ein Zeitablaufdiagramm, das mit der programmierbaren Schreibunterstützungsschaltung aus 2A verknüpft ist, die ausgebildet ist, eine Schreibunterstützung unter Anwendung einer negativen Bitleitungshochsetzung gemäß einer Ausführungsform auszuführen.
  • 3B zeigt ein Zeitablaufdiagramm, das mit der programmierbaren Schreibunterstützungsschaltung aus 2A verknüpft ist, die ausgebildet ist, eine Schreibunterstützung unter Anwendung einer negativen Bitleitungshochsetzung und eines Einbruchs der Versorgungsspannung gemäß einer Ausführungsform auszuführen.
  • 4 zeigt eine Parallelverarbeitungseinheit gemäß einer Ausführungsform.
  • 5 zeigt den Datenstrom-Multiprozessor aus 4 gemäß einer Ausführungsform.
  • 6 zeigt ein anschauliches System, in welchem die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Wie zuvor erläutert ist, kann eine Schwankung der Schaltungseigenschaften einen PMOS-Hochziehtransistor (pull-up Transistor) des Speicherelements stärken und ein NMOS-Durchlassgatter schwächen, so dass die Speicherzelle nicht zuverlässig beschrieben werden kann. Bedauerlicherweise sind die Änderung der Größe des PMOS-Hochziehtransistors zur Steigerung des PMOS-Hochziehelements und die Änderung der Größe des NMOS-Durchlassgatter-Transistors zur Stärkung des NMOS-Durchlassgatters keine wirksame Technik, um die Schreibzuverlässigkeit zu verbessern. Wenn beispielsweise die Speicherzelle unter Anwendung von Steg-FET bzw. Fin-FET realisiert ist, ist die Größe der Speicherzelle entsprechend der Anzahl der Stege gequantelt. Das bedeutet, dass für diverse Entwurfsgründe Transistordimensionierung keine effektive Technik ist, um die Schreibzuverlässigkeit zu verbessern, selbst wenn Schwankungen der Schaltungseigenschaften minimal sind. Die Schreibunterstützung schwächt den PMOS-Hochziehtransistor und stärkt das NMOS-Durchlassgatter, um die Zuverlässigkeit des Schreibens zu verbessern, ohne dass eine Änderung der Größen von Transistoren erfordert. Die Schreibunterstützung wird während Schreiboperationen aktiviert und wird während Leseoperationen deaktiviert, um unerwünschte Nebenwirkungen während der Leseoperationen zu vermeiden.
  • 1A zeigt ein Flussdiagramm eines Verfahrens 100 zur Ausführung einer Schreibunterstützung unter Anwendung einer gekoppelten Versorgungsspannung und Bitleitung gemäß einer Ausführungsform. Im Schritt 105 wird die Schreibunterstützungsschaltung initialisiert. Im Schritt 110 wird ein Einbruch der hohen Spannungsversorgung, die für die zu beschreibende Speicherzelle bereitgestellt ist, initiiert. Der Einbruch verringert die Versorgungsspannung, die der Speicherzelle zugeführt wird, die gerade beschrieben wird. Im Schritt 115 wird eine Bitleitung der Speicherzelle angehoben. Insbesondere wird die Bitleitung, die den niedrigen differenziellen Wert der Daten (das heißt die negative Bitleitung) kodiert, angehoben, indem die Spannung der negativen Bitleitung unter den unteren Versorgungsspannungspegel abgesenkt wird (beispielsweise VSS), die der Speicherzelle zugeleitet ist, was typischerweise Masse ist. Im Schritt 120 wird die Speicherzelle mit den Daten beschrieben.
  • Es wird nun eine anschauliche Information im Hinblick auf diverse optionale Architekturen und Merkmale angegeben, mit denen die vorhergehende Technik realisiert werden kann oder auch nicht, wobei dies von den Bedürfnissen des Anwenders abhängt. Es sollte jedoch dringend beachtet werden, dass die folgende Information zu anschaulichen Zwecken angegeben ist und nicht dafür gedacht ist, in irgendeiner Weise einschränkend zu sein. Jedes der folgenden Merkmale kann optional eingebaut werden, mit oder ohne Einschluss anderer beschriebener Merkmale.
  • 1B zeigt eine Speicherzellenschaltung 150, die mit einer programmierbaren Schreibunterstützungsschaltung 200 gemäß einer Ausführungsform gekoppelt ist. Wie gezeigt, ist die Speicherzellenschaltung 150 eine konventionelle 6-Transistor-SRAM-Speicherzelle, die ausgebildet ist, eine Schreiboperation auszuführen, indem Daten, die auf differenziellen Bitleitungen (d. h. BLL 125 und BLER 130) kodiert sind, in ein Speicherelement zu übertragen, wenn die Wortleitung 135 gesetzt wird. Wie zuvor erläutert ist, kann eine Schreiboperation aufgrund von Schwankungen der Schaltungseigenschaften, die sich aus der Herstellungstechnik geben, fehlschlagen, wenn die Schreibunterstützung nicht verwendet wird.
  • Es sei beispielsweise angenommen, dass die geboostete Bitleitung 125 (BLL) gleich 0 ist und dass die geboostete Bitleitung 130 (BLER) gleich 1 ist, und dass die Speicherzellenschaltung 150 den entgegengesetzten Wert hält, wobei BLLI = 1 und BLER = 0 gilt. Ein erster Aspekt ist, dass das Durchlassgatter 161, das mit BLL = 0 gekoppelt ist, stark genug sein sollte, um das Hochziehelement (pullup) 171, das den internen Knoten BLLI auf hohem Pegel hält, zu übertreffen. Eine Änderung der Schaltungseigenschaft kann das Hochziehelement 171 stärken und kann das Durchlassgatter 161 schwächen, wodurch verhindert wird, dass BLLI von 1 nach 0 übergeht. Ferner sollte das Hochziehelement 170 auf der gegenüberliegenden Seite der Speicherzellenschaltung 150 ausreichend stark sein, um BLRI auf hohen Pegel zu ziehen, wenn das Hochziehelement 170 einschaltet. Zu beachten ist, dass das Durchlassgatter 160 ein NMOS-Transistor ist, und daher beim Hochziehen von BLRI auf hohen Pegel von einer tiefen Spannung aus nicht unterstützend wirkt. Die Schreibunterstützungstechnik, die hierin weiter beschrieben ist, schwächt das Hochziehelement 171, und stärkt auch das Durchlassgatter 161 uns das Hochziehelement 170, um die Schreibzuverlässigkeit für BLL = 0 und BLR = 1 zu verbessern. Um andererseits die Schreibzuverlässigkeit für BLL = 1 und BLR = 0 zu verbessern, wird das Hochziehelement 170 geschwächt, während das Durchlassgatter 160 und das Hochziehelement 171 gestärkt werden. Die Schreibunterstützungstechnik wird gegebenenfalls nur während einer Schreiboperation angewendet, um unerwünschte Nebenwirkungen während der Leseoerationen zu vermeiden.
  • Die Schreibunterstützung wird durch eine Kombination des Boosten der negativen Bitleitung und einen Einbruch der Spaltenversorgungsspannung 122 für die Speicherzelle erreicht, die beschrieben wird. Der Vorgang des Boosten der negativen Bitleitung senkt den Spannungspegel der Bitleitung, die den tiefen differenziellen Wert für die Daten kodiert (d. h. die negative Bitleitung), unter eine untere Versorgungsspannung, die der Speicherzelle zugeleitet ist, ab. Wie in 1B gezeigt ist, ist die programmierbare Schreibunterstützungsschaltung 200 ausgebildet, einen geboosteten Wert der negativen Bitleitung der Speicherzellenschaltung 150 während einer Schreiboperation über die geboostete Bitleitung 125 (BLL) und die geboostete Bitleitung 130 (BLR) zuzuleiten. Die programmierbare Schreibunterstützungsschaltung 200 ist ausgebildet, die Spaltenversorgungsspannung 122, die der Speicherzellenschaltung 150 während einer Schreiboperation zugeführt wird, einbrechen zu lassen, indem die Spaltenversorgungsspannung 122 ausgehend von der hohen Versorgungsspannung (VDD) auf einen eingebrochenen Spannungswert reduziert wird, der unter der hohen Versorgungsspannung liegt. Der Einbruch der Spaltenversorgungsspannung 122 verringert den Spannungspegel, der dem Hochziehelement 171 und dem Hochziehelement 170 der Speicherzellenschaltung 150 zugeleitet wird.
  • Das Boosten der negativen Bitleitung, d. h. von BLL 125, erhöht die Gate-Source-Spannung (Vgs) des Durchlassgatters 161, und BLLI wird weiter nach unten gezogen im Vergleich zur Bereitstellung der (nicht geboosteten) unteren Versorgungsspannung bei BLL 125. Die Source-Gate-Spannung (Vsg) an dem Hochziehelement 170 wird erhöht, wodurch das Hochziehelement 170 und das Durchlassgatter 161 gestärkt werden. Der Spannungseinbruch verringert die Spaltenversorgungsspannung 122 und reduziert Vsg an dem Hochziehelement 171, wodurch das Hochziehelement 171 geschwächt wird. Zu beachten ist, dass die Verwendung eines Einbruchs der hohen Versorgungsspannung alleine auch die Stärke des Hochziehelements 170 verringert (was nicht gewünscht ist) und das Hochziehen von BLRI auf hohen Pegel wird weiter erschwert. Jedoch wirkt die Kombination des Boosten der negativen Bitleitung und des Einbruchs der hohen Versorgungsspannung dem Abfall der Stärke des Hochziehelements 170 entgegen.
  • In einem weiteren Beispiel gilt, dass die geboostete Bitleitung 130 BLR = 0, die geboostete Bitleitung 125 BLL = 1, und die Speicherzellenschaltung 150 den entgegengesetzten Wert hält, wobei BLLI = 0 und BLRI = 1 gilt. Die programmierbare Schreibunterstützungsschaltung 200 ist ausgebildet, die negative Bitleitung BLR 130 anzuheben und die Spaltenversorgungsspannung 122 während einer Schreiboperation einbrechen zu lassen. Das Boosten von BLR 130 erhöht Vgs des Durchlassgatters 160, das BLRI weiter nach unten zieht im Vergleich zu der Bereitstellung der (nicht geboosteten) tiefen Versorgungsspannung (beispielsweise VSS) an der negativen Bitleitung BLR 130. Vsg an dem Hochziehelement 171 wird erhöht, wodurch das Hochziehelement 171 und das Durchlassgatter 160 gestärkt werden. Der Spannungseinbruch reduziert die Spaltenversorgungsspannung 122 und verringert Vsg an dem Hochziehelement 170, wodurch das Hochziehelement 170 geschwächt wird. Zu beachten ist, dass die Anwendung eines Einbruchs der hohen Versorgungsspannung alleine auch die Stärke des Hochziehelements 171 verringert (was nicht gewünscht ist), und das Boosten von BLLI auf hohen Pegel wird erschwert. Jedoch wirkt die Kombination des Boosten der negativen Bitleitung mit dem Einbruch der hohen Versorgungsspannung der Abnahme der Stärke des Hochziehelement 171 entgegen.
  • Obwohl nur eine einzelne Speicherzellenschaltung 150 in 1B gezeigt ist, können mehrere Speicherzellenschaltungen 150 in einem Array mit zwei oder mehr Zeilen angeordnet sein. Jede Zeile wird separat entsprechend einer Adresse aktiviert, und die Wortleitung 125 wird gesetzt, um Lese- und Schreiboperationen auszuführen. Die Speicherzellenschaltungen 150 in einem Array können in eine oder mehrere Spalten eingeteilt werden, wobei ein Teil der Adresse verwendet wird, um zwischen den unterschiedlichen Spalten für Lese- und Schreiboperationen auszuwählen.
  • 2A zeigt die programmierbare Schreibunterstützungsschaltung 200 und die Speicherzellenschaltung 150 aus 1B gemäß einer Ausführungsform. Die programmierbare Schreibunterstützungsschaltung 200 ist mit der Speicherzellenschaltung 150 gekoppelt. Die programmierbare Schreibunterstützungsschaltung 200 enthält eine Schreib-mux-(Multiplexer)Teilschaltung 215, eine Spaltenversorgungsteilschaltung 220 und eine Bitleitungs-Hochsetz-Teilschaltung 245. Wie in 2A gezeigt ist, ist eine 2 zu 1-Spalten-Bit-Verschachtelung in dem SRAM-Array eingesetzt, das die Speicherzellenschaltung 150 enthält. BLLI 209 und BLB1 211 sind die differenziellen Bitleitungen, die einer ersten Spalte entsprechen, und BL2 212 und BLB2 213 sind die differenziellen Bitleitungen, die einer zweiten Spalte entsprechen. Die Spaltenversorgung 221 ist die Spaltenversorgungsspannung, die von der Spaltenversorgungseinbruchs-Teilschaltung 220 den Speicherzellenschaltungen 150 in der ersten Spalte des SRAM-Arrays zugeleitet ist, und die Spaltenversorgung 222 ist die Spaltenversorgungsspannung, die den Speicherzellenschaltungen 150 in der zweiten Spalte des SRAM-Arrays zugeleitet ist. Wie gezeigt, kann die Bitleitungs-Hochsetz-Teilschaltung 145 gemeinsam von beiden Spalten eines SRAM-Arrays benutzt werden. Die programmierbare Schreibunterstützungsschaltung 200 kann ferner ohne eine Spalten-Verschachtelung eingesetzt werden oder kann gemeinsam von mehr als zwei Spalten des SRAM-Arrays genutzt werden.
  • Unter der Annahme, dass BLB1 211 die negative Bitleitung für eine spezielle Schreiboperation ist, hebt die Schreibunterstützungsoperation BLB1 211 unter die untere Versorgungsspannung, und erzwingt einen Einbruch der Spaltenversorgungsspannung 120, die der Speicherzellenschaltung 150 zugeleitet ist (d. h. der Spaltenversorgung 221). Die Bitleitung BL1 209 ist die positive Bitleitung und wird auf einen Wert von 1 gesetzt (d. h. die hohe Versorgungsspannung).
  • Die Schreib-mux-Teilschaltung 215 aktiviert das Gate des NMOS-Transistors 202, der der negativen Bitleitung BLB1 211 entspricht. Die Gates der NMOS-Transistoren 201, 203 und 204 sind deaktiviert. Die Eingangssignale für das NOR-Gatters 207 sind die Daten (auszuwählen zwischen BL1 209 und BLB1 211) und eine Kombination aus der Spaltenauswahl und der Schreibaktivierung (auszuwählen zwischen der Spalte 1 oder 2, wenn eine Schreiboperation aktiviert wird). Die Bitleitung-Entladung 210 wird gesetzt durch Voreinstellung, wodurch BLB1 211 und der Hochsetz-Knoten 246 durch den NMOS-Transistor 230 nach unten (d. h. auf Masse) gezogen werden. Zu diesem Zeitpunkt muss der Knoten 248 hochgezogen werden, um eine Spannung über dem Boost-Kondensator 240 zu erzeugen und die programmierbare Schreibunterstützungsschaltung 200 zu initialisieren, um die Schreibunterstützung auszuführen.
  • In einer Ausführungsform kann der Spannungseinbruchsteil der Schreibunterstützung deaktiviert sein. Das n_P1-Signal 241 und das n_P2-Signal 242 werden verwendet, um den Spannungseinbruch für die Spalten 1 und 2 entsprechend zu aktivieren/deaktivieren. Insbesondere wird n_P1 241 negiert, um den Spannungseinbruch für die Spalte 1 zu deaktivieren und die Spaltenversorgung 221 über den PMOS-Transistor 231 hochzuziehen. In ähnlicher Weise wird n_P2 242 negiert, um den Spannungseinbruch für die Spalte 2 zu deaktivieren und die Spaltenversorgung 222 durch den PMOS-Transistor 232 hochzuziehen. Die Schreibunterstützung kann programmiert werden, um den Spannungseinbruch zu deaktivieren, wenn weniger Schreibunterstützung benötigt wird. Wenn der Spannungseinbruch für die Spalte 1 aktiviert wird, wird n_P1 241 gesetzt, um Daten in die Speicherzellenschaltung 150 in der Spalte 1 zu schreiben, wodurch der PMOS-Transistor 231 deaktiviert wird, so dass die Spaltenversorgung 221 schwebt bzw. ein sich frei einstellendes Potenzial hat. Zu beachten ist, dass aufgrund dessen, dass die Spaltenversorgung 221 zuvor auf die hohe Versorgungsspannung hochgezogen wurde, die schwebende Spaltenversorgung 221 auf hohem Spannungspegel liegt.
  • Um die Initialisierung der programmierbaren Schreibunterstützungsschaltung 200 für das Boosten der negativen Bitleitung abzuschließen, wird eine Spannung an dem Boost-Kondensator 240 erzeugt. Das n_X1-Signal 243 wird negiert, um den PMOS-Transistor 233 in der Spaltenversorgungs-Einbruchsteilschaltung 220 zu aktivieren, um den Knoten 248 hochzuziehen, wodurch eine Spannung über dem Boost-Kondensator 240 erzeugt wird. Wenn eine Schreiboperation für die Spalte 2 ausgeführt wird, wird das n_X2-Signal 244 negiert, um den PMOS-Transistor 234 zu aktivieren, um den Knoten 248 hochzuziehen. Der Spannungspegel, auf den der Knoten 248 hochgezogen wird, wenn der Spannungseinbruch aktiviert wird, hängt von dem Verhältnis zwischen der Kapazität der Spaltenversorgung 221 (oder Spaltenversorgung 222) und des Boost-Kondensators 240 ab. Wenn der Spannungseinbruch aktiviert ist, wird der Knoten 248 auf die hohe Versorgungsspannung durch die PMOS-Transistoren 231 und 233 (oder PMOS-Transistoren 232 und 234) gezogen.
  • Zusätzlich zur Erzeugung der Spannung am Boost-Kondensator 240 senkt die Aktivierung des PMOS-Transistors 232 oder des PMOS-Transistors 234 die Spaltenversorgung 221 oder 222 entsprechend ab, wenn der Spannungseinbruch aktiviert wird, da die Spaltenversorgung 221 oder 222 schwebend ist und auf einen teilweise eingebrochen Pegel gezogen wird, der tiefer ist als die hohe Versorgungsspannung. Daher wird ein teilweise erfolgender Spannungseinbruch bewerkstelligt, wenn der Knoten 248 hochgezogen wird, um den Boost-Kondensator 240 zu laden und das Boosten der negativen Bitleitung zu initialisieren.
  • Wenn der Einbruch der hohen Versorgungsspannung nicht aktiviert ist, bleiben die Spaltenversorgung 221 und die Spaltenversorgung 222 auf der hohen Versorgungsspannung, wenn der PMOS-Transistor 233 oder 234 entsprechend aktiviert wird, um die Spannung über dem Boost-Kondensator 240 zu erzeugen. Der Knoten 248 stellt sich auf den gleichen Spannungspegel wie die Spaltenversorgung 221 oder 222 ein.
  • Nachdem die programmierbare Schreibunterstützungsschaltung 200 initialisiert ist, um das Boosten der negativen Bitleitung auszuführen, kann die Wortleitung, beispielsweise die Wortleitung 135, aktiviert werden, um die Schreiboperation zu beginnen. Danach wird das Boosten der negativen Bitleitung initiiert, indem die Bitleitung-Entladung 210 negiert wird, um den NMOS-Transistor 230 zu deaktivieren und den Hochsetz-Knoten 246 schwebend zu machen. Die Bitleitungssteuerungen 225 und 227 sind ausgebildet, den NMOS-Transistor 235 oder NMOS-Transistor 236 (der wiederum den NMOS-Transistor 237 aktiviert) zu aktivieren, um den Knoten 248 nach unten zu ziehen. Die Bitleitungssteuerungen 225 und 227 stellen einen unterschiedlichen Grad an Anhebung für das Boosten der negativen Bitleitung bereit. Das Setzen der Bitleitungssteuerungen 225 zur Aktivierung des NMOS-Transistors 235 zieht den Knoten 248 auf Masse. Das Setzen der Bitleitungssteuerung 227 zur Aktivierung des NMOS-Transistors 237 zieht den Knoten 248 auf Vth des NMOS-Transistors 236. In anderen Ausführungsformen kann ein einzelner Grad an Anhebung oder es können weitere Grade an Anhebung bereitgestellt werden, indem einer oder mehrere der NMOS-Transistoren 235, 236 und 237 weggelassen werden oder indem zusätzliche Transistoren verwendet werden, die mit dem Knoten 248 verbunden sind.
  • Wenn der Einbruch der hohen Versorgungsspannung aktiviert ist, beendet das Setzen der Bitleitungssteuerung 225 oder 227 den Spannungseinbruch, indem die Spaltenversorgung 221 (oder 222) nach unten gezogen wird. Da die Spaltenversorgung 221 (oder 222) über den PMOS-Transistor 233 (oder 234) nach unten gezogen wird, ist die Spannung an der Spaltenversorgung 221 (oder 222) durch die Schwellwertspannung Vth des PMOS-Transistors 233 (oder 234) begrenzt. Die Begrenzung der minimalen Spannung an der Spaltenversorgung 221 (oder 222) stellt sicher, dass die Spaltenversorgung 221 (oder 222) über der Haltespannung liegt (d. h. dem Spannungspegel, der für die Speicherzellenschaltung 150 erforderlich ist, um Daten zu erhalten, wenn weder eine Leseoperation noch eine Schreiboperation ausgeführt wird).
  • Wenn der Spannungseinbruch deaktiviert ist, wird das n_X1 243 (oder n_X2 244) Signal gesetzt, um den PMOS-Transistor 233 (oder 234) abzuschalten, wodurch ein Kurzschlussstrom zwischen VDD und Masse verhindert wird. Wenn der Knoten 248 über den NMOS-Transistor 235 (oder NMOS-Transistoren 236 und 237) auf Masse gezogen wird, wird der Hochsetz-Knoten 246 auf eine negative Spannung gezogen (d. h. einen Spannungspegel unterhalb der unteren Versorgungsspannung). Der Pegel der negativen Spannung beruht auf dem Spannungsteiler, der durch den Boost-Kondensator 240 und die Kapazität der BLB1 211 gebildet ist. Wenn der Hochsetz-Knoten 246 auf eine negative Spannung gehoben wird, wird die negative Bitleitung BLB1 211 auf eine tiefe Spannung gehoben. Der NMOS-Transistor 230 sollte mit einer hohen Vth ausgewählt werden, um zu verhindern, dass Ladung in den Hochsetz-Knoten 246 abfließt und die negative Anhebung beeinträchtigt.
  • Um die Schreiboperation abzuschließen, muss das Hochziehelement 170 in der Speicherzellenschaltung 150 den tiefen internen Knoten BLRI auf hohen Pegel ziehen (wobei angenommen wird, dass die geboostete Bitleitung 130 auf hohem Pegel liegt und die geboostete Bitleitung 125 auf tiefem Pegel liegt. Damit das Hochziehelement 170 den BLRI-Knoten auf hohen Pegel ziehen kann, sollte die Spaltenversorgungsspannung 122 wieder auf den hohen Versorgungsspannungspegel gelegt werden, bevor die Wortleitung 135 negiert wird (d. h. abgeschaltet wird). Um das Hochziehelement 170 stark zu halten, sollte die negative Bitleitung, die geboostete Bitleitung 125 (die mit BLB1 211 gekoppelt ist) weiterhin angehoben bleiben, wenn die hohe Versorgungsspannung, beispielsweise VDD, wiederhergestellt wird. Daher wird das n_X1 243 (oder n_X2 244) gesetzt, um den PMOS-Transistor 223 (oder 234) abzuschalten. Wenn der Spannungseinbruch aktiviert wurde, wird das n_P1 241 (oder 242) negiert und der PMOS-Transistor 231 (oder 232) schaltet durch, um die Spaltenversorgung 221 (oder 222) mit dem hohen Versorgungsspannungspegel (VDD) wieder herzustellen.
  • Um das Boosten der negativen Bitleitung zu beenden, wird der NMOS-Transistor 202 abgeschaltet, so dass die Vorladung der BLB1 211 und die Bitleitungs-Entladung 210 gesetzt werden, um den NMOS-Transistor 230 durch zu schalten, so dass der Hochsetz-Knoten 246 auf die tiefe Versorgungsspannung (Masse) gebracht wird. Der Knoten 248 bleibt auf einer gewissen unbekannten Spannung, die auf der Einstellung der Bitleitungssteuerung 225 und 227 beruht. In einer Ausführungsform ist ein NMOS-Transistor mit dem Knoten 248 gekoppelt und ausgebildet, an dem Knoten 248 eine Vor-Entladung auf die niedrige Versorgungsspannung vorzunehmen, um die Wirkung des Einbrechens der hohen Versorgungsspannung zu maximieren. Die Bitleitungssteuerung 225 kann ausgebildet sein, die Vor-Entladung des Knotens 248 auszuführen.
  • Die Erzeugung der Signale der Bitleitungs-Entladung 210, der Bitleitungssteuerung 225 und 227, des n_P1 241, n_P2 242, n_X1 243, n_X2 244, der Wortleitung 135 und der Eingänge für die NOR-Gatter in den Signalen der Schreib-mux-Teilschaltung 215 kann durch Standardlogikgatter und Verzögerungsketten realisiert werden. Zumindest einige der Signale können von den mehreren Spalten gemeinsam benutzt werden.
  • 2B zeigt ein weiteres Flussdiagramm eines Verfahrens 250 zur Ausführung einer Schreibunterstützung unter Verwendung eines Einbruchs der Versorgungsspannung und einer Anhebung der negativen Bitleitung gemäß einer Ausführungsform. Im Schritt 255 wird die Bitleitungs-Entladung 210 gesetzt, um die negative Bitleitung für eine Schreiboperation zu entladen und den Hochsetz-Knoten 246 auf die tiefe Versorgungsspannung zu ziehen. Im Schritt 257 wird eine Spannung an dem Boost-Kondensator 240 angelegt, indem der Knoten 248 hochgezogen wird. Im Schritt 260 ermittelt die programmierbare Schreibunterstützungsschaltung 200, ob ein Spannungseinbruch aktiviert ist, und wenn dies der Fall ist, wird im Schritt 262 die Spaltenversorgung von der hohen Versorgungsspannung entkoppelt und kann sich frei einstellen bzw. schweben. Ansonsten wird im Schritt 264 die Spaltenversorgungsspannung auf VDD (die hohe Versorgungsspannung) gehalten. Zu diesem Zeitpunkt wird eine Spannung an dem Boost-Kondensator 240 erzeugt, um die Schreibunterstützung zu initialisieren.
  • Im Schritt 265 wird die Wortleitung 135 aktiviert, um die Schreiboperation zu beginnen. Im Schritt 270 wird, wenn der Einbruch der hohen Versorgungsspannung nicht aktiviert ist, dann im Schritt 272 die Spaltenversorgung von dem Boost-Kondensator 240 abgekoppelt, um einen Kurzschluss zwischen VDD und Masse zu verhindern, bevor zum Schritt 275 weitergegangen wird. Im Schritt 275 wird das Boosten der negativen Bitleitung aktiviert und der Hochsetz-Knoten 246 wird auf eine negative Spannung gezogen, um die negative Bitleitung unter die untere Versorgungsspannung anzuheben, die der Speicherzellenschaltung 150 zugeleitet ist.
  • Im Schritt 278 wird die Speicherzelle mit den Daten beschrieben. Im Schritt 280 wird, wenn der Spannungseinbruch aktiviert ist, dann im Schritt 282 die Spaltenversorgung wieder auf die hohe Versorgungsspannung hergestellt, bevor zum Schritt 285 weitergegangen wird. Im Schritt 285 wird die Wortleitung 135 deaktiviert und im Schritt 290 wird das Boosten der negativen Bitleitung deaktiviert, indem der Hochsetz-Knoten 246 auf die untere Versorgungsspannung hochgezogen wird.
  • 3A zeigt ein Zeitablaufdiagramm 300, das mit der programmierbaren Schreibunterstützungsschaltung 200 aus 2A verknüpft ist, die ausgebildet ist, eine Schreibunterstützung unter Anwendung einer Anhebung der negativen Bitleitung gemäß einer Ausführungsform auszuführen. Die programmierbare Schreibunterstützungsschaltung 200 ist ausgebildet, den Spannungseinbruch gemäß dem Zeitablaufdiagramm 300 zu deaktivieren, und die hohe Versorgungsspannung VDD wird auf 600 mV gelegt.
  • Am Beginn der Schreibunterstützung wird die Bitleitungs-Entladung 210 gesetzt, so dass der Hochsetz-Knoten 246 auf einen tiefen Spannungspegel (10 mV) gezogen wird, und die negative Bitleitung BLB1 211 wird nach unten gezogen (auf 10 mV). Zum Zeitpunkt 305 wird n_X1 243 negiert, um den Knoten 248 hochzuziehen und um eine Spannung an dem Boost-Kondensator 240 anzulegen. Der Hochsetz-Knoten 246 steigt in Reaktion auf den Anstieg der Spannung an dem Knoten 248 an. Ferner bleibt zum Zeitpunkt 305 n_P1 241 umgeändert, da der Spannungseinbruch für die Signalformen, die in 3A gezeigt sind, nicht aktiviert wird, wenn die Schreibunterstützungsoperation ausgeführt wird. Der von dem Hochsetz-Knoten 246 erreichte Spannungspegel erreicht nicht ganz den teilweise Boost-Spannungspegel der Spaltenversorgung 221 im Zeitpunkt 310.
  • Nach dem Zeitpunkt 305 und vor dem Zeitpunkt 310 wird die Bitleitungs-Entladung 210 negiert. Zum Zeitpunkt 310 wird n_X1 243 gesetzt, um die Spaltenversorgung 221 von dem Boost-Kondensator 240 zu entkoppeln und um einen Kurzschluss zwischen der hohen Versorgungsspannung und der tiefen Versorgungsspannung zu vermeiden. Zum Zeitpunkt 310 wird die Bitleitungssteuerung 225 gesetzt, um das Boosten der negativen Bitleitung zu aktivieren. Die Spaltenversorgung 221 bricht nicht weiter ein, da der Spannungseinbruch nicht aktiviert ist. Zum Zeitpunkt 310 wird der Hochsetz-Knoten 246 auf eine tiefere Spannung gezogen und die negative Bitleitung BLB1 211 wird auf eine negative Spannung (beispielsweise –70 mV) zwischen dem Zeitpunkt 310 und 315 gezogen. Zum Zeitpunkt 315 wird die Bitleitungssteuerung 225 negiert und die Bitleitungs-Entladung 210 wird gesetzt, um das Boosten der negativen Bitleitung zu aktivieren und um den Vorgang der Schreibunterstützung abzuschließen.
  • 3B zeigt ein Zeitablaufdiagramm 350, das mit der programmierbaren Schreibunterstützungsschaltung 200 aus 2A verknüpft ist, die ausgebildet ist, die Schreibunterstützung unter Anwendung des Boosten der negativen Bitleitung und des Einbruchs der hohen Versorgungsspannung gemäß einer Ausführungsform auszuführen. Die programmierbare Schreibunterstützungsschaltung 200 ist ausgebildet, den Einbruch der hohen Versorgungsspannung entsprechend dem Zeitablaufdiagramm 350 zu aktivieren und VDD wird auf 600 mV gesetzt.
  • Am Beginn des Vorgangs der Schreibunterstützung wird die Bitleitungs-Entladung 210 gesetzt, so dass der Hochsetz-Knoten 246 auf einen tiefen Spannungspegel gezogen wird und die negative Bitleitung BLB1 211 auf der tiefen Versorgungsspannung (0 mV) liegt. Zum Zeitpunkt 355 wird n_P1 241 gesetzt, um den PMOS-Transistor 231 zu deaktivieren und die Spaltenversorgung 221 schwebend zu machen, und n_X1 243 wird negiert, um den Knoten 248 hochzuziehen und um eine Spannung an dem Boost-Kondensator 240 bereitzustellen. Der Hochsetz-Knoten 246 steigt in Reaktion auf den Anstieg der Spannung an dem Knoten 248 an. Der Spannungspegel, der von dem Hochsetz-Knoten 246 erreicht wird, ist im wesentlichen gleich dem teilweise eingebrochenen Spannungspegel der Spaltenversorgung 221 zum Zeitpunkt 360. Effizienz wird erreicht, indem der Boost-Kondensator 240 als Folge des teilweise erfolgenden Spannungseinbruchs geladen wird.
  • Vor dem Zeitpunkt 360 wird die Bitleitungs-Entladung 210 negiert. Zum Zeitpunkt 360 wird die Bitleitungssteuerung 225 gesetzt, um das Boosten der negativen Bitleitung zu aktivieren. Die Spaltenversorgung 221 bricht vom Zeitpunkt 360 bis zum Zeitpunkt 365 weiter ein, um sich auf einen eingebrochenen Spannungspegel einzustellen. Zum Zeitpunkt 360 wird der Hochsetz-Knoten 246 auf eine tiefere Spannung gezogen und die negative Bitleitung BLB1 211 wird auf eine negative Spannung (–80 mV) angehoben. Um die Schreiboperation zum Zeitpunkt 365 abzuschließen, wird das n_P1 241 negiert und das n_X1 243 wird gesetzt, um die Spaltenversorgung 221 wieder auf die hohe Versorgungsspannung (600 mV) zu legen. Zum Zeitpunkt 370 wird die Bitleitungssteuerung 225 negiert und die Bitleitungs-Entladung 210 wird gesetzt, um das Boosten der negativen Bitleitung zu deaktivieren und den Schreibunterstützungsvorgang zu beenden.
  • Der Vorgang der Schreibunterstützung, in welchem das Boosten der negativen Bitleitung und der Einbruch der Versorgungsspannung kombiniert sind, stellt mehrere Vorteile zusätzlich zur Verbesserung der Schreibzuverlässigkeit bereit. Typischerweise sind die Leitung für die hohe Versorgungsspannung VDD und die Bitleitungen in einer Metallschicht in parallelen Bahnen geführt. Daher ermöglicht die kapazitive Kopplung zwischen der negativen Bitleitung und VDD einen kleineren Boost-Kondensator 240. Ein Nachteil der Verwendung des Einbruchs der Spannungsversorgung ohne das Boosten der negativen Bitleitung besteht darin, dass das Boosten der negativen Bitleitung die Gate-Spannung an dem PMOS-Hochzieh-Transistor verringert, der einen internen Knoten während der Schreiboperation hochzieht, wodurch das PMOS-Hochziehelement gestärkt wird, um zu helfen, den von dem Speicherelement in der Speicherzellenschaltung 150 gespeicherten Wert umzuschalten. Die Energie, die für den Teileinbruch der hohen Versorgungsspannung verwendet wird, wird genutzt, um die Aufladung des Boost-Kondensators 240 zu unterstützen. Schließlich wird der Knoten 248 nicht vollständig entladen, so dass weniger Energie nötig ist, um den Knoten 248 wieder aufzuladen und um die Spannung an dem Boost-Kondensator 240 für die nächste Schreibunterstützung bereitzustellen.
  • 4 zeigt eine PPU 400 gemäß einer Ausführungsform, in der die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert werden können. Insbesondere kann die Schreibunterstützungstechnik, die durch die programmierbare Schreibunterstützungsschaltung 200 realisiert ist, für ein oder mehrere der Speicherelemente oder Registerelemente eingesetzt werden, die auf der SRAM-Speicherschaltung beruhen.
  • Obwohl ein paralleler Prozessor hierin als ein Beispiel der PPU 400 bereitgestellt ist, sollte dringend beachtet werden, dass ein derartiger Prozessor nur für anschauliche Zwecke angegeben ist, und dass ein beliebiger Prozessor eingesetzt werden kann, um diesen zu ergänzen und/oder zu ersetzen. In einer Ausführungsform ist die PPU 400 ausgebildet, mehrere Stränge gleichzeitig in zwei oder mehr Datenstrom-Multiprozessoren (SM) 450 auszuführen. Ein Strang (d. h. ein Ausführungsstrang) ist eine Instantiierung einer Gruppe aus Befehlen, die in einem speziellen SM 450 ausgeführt werden. Jeder SM 450, der nachfolgend detaillierter in Verbindung mit 5 beschrieben ist, kann man ohne Einschränkung, einen oder mehrere Verarbeitungskerne und eine oder mehrere Lade/Speichereinheiten (LSU), einen Cache-Speicher der Ebene eins (L1), einen gemeinsam benutzten Speicher und dergleichen aufweisen.
  • In einer Ausführungsform umfasst die PPU 400 eine Eingabe/Ausgabe-(I/O-)Einheit 405, die ausgebildet ist, Kommunikationsereignisse (d. h. Befehle, Daten, usw.) von einer zentralen Recheneinheit (CPU) (nicht gezeigt) über den Systembus 402 zu senden und zu empfangen. Die I/O-Einheit 405 kann die Schnittstelle in Form eines peripheren Komponenten-Verbindungs-Express (PCIe) zur Kommunikation über einen PCIe-Bus einrichten. In alternativen Ausführungsformen kann die I/O-Einheit 405 andere Arten gut bekannter Busschnittstellen realisieren.
  • Die PPU 400 umfasst ferner eine übergeordnete Schnittstelleneinheit bzw. eine Hauptschnittstelleneinheit 410, die die Befehle dekodiert und die Befehle an die Gitterverwaltungseinheit 415 oder an andere Einheiten der PPU 400 (beispielsweise eine Speicherschnittstelle 480) entsprechend der Angabe in den Befehlen sendet. Die Hauptschnittstelleneinheit 410 ist ausgebildet, Kommunikationsereignisse zwischen und unter den diversen Logikeinheiten der PPU 400 auszuführen.
  • In einer Ausführungsform wird ein Programm, das als ein Befehlsstrom kodiert ist, von der CPU in einen Puffer gespeichert. Der Puffer ist ein Gebiet im Speicher, beispielsweise in dem Speicher 404 oder einem Systemspeicher, auf den sowohl die CPU als auch die PPU 400 zugreifen können (das heißt lesen/schreiben). Die CPU schreibt den Befehlsstrom in den Puffer und sendet dann einen Zeiger auf den Beginn des Befehlsstroms an die PPU 400. Die Hauptschnittstelleneinheit 410 leitet der Gitterverwaltungseinheit (GMU) 415 Zeiger auf einen oder mehrere Ströme zu. Die GMU 415 wählt einen oder mehrere Ströme aus und ist ausgebildet, die ausgewählten Ströme als eine Ansammlung anhängiger Gitter zu verwalten. Die Ansammlung anhängiger Gitter kann neue Gitter enthalten, die noch nicht für die Ausführung ausgewählt sind und Gitter, die teilweise ausgeführt sind und unterbrochen worden sind.
  • Eine Arbeitsverteilungseinheit 420, die mit der GMU 415 und den SM 450 gekoppelt ist, verwaltet eine Anzahl aus aktiven Gittern, wobei Gitter für die Ausführung ausgewählt und ausgegeben werden von den SM 450. Anhängige Gitter werden zu der aktiven Gitteransammlung von der GMU 415 übertragen, wenn ein anhängiges Gitter für die Ausführung bereit ist, d. h. keine offenen Datenabhängigkeiten besitzt. Ein aktives Gitter wird in die anhängige Ansammlung übertragen, wenn die Ausführung des aktiven Gitters durch eine Abhängigkeit blockiert ist. Wenn die Ausführung eines Gitters abgeschlossen ist, wird das Gitter aus der aktiven Gitteransammlung durch die Arbeitsverteilungseinheit 420 entfernt. Zusätzlich zu dem Empfang von Gittern aus der Hauptschnittstelleneinheit 410 und der Arbeitsverteilungseinheit 420 empfängt die GMU 415 ferner Gitter, die von den SM 450 während der Ausführung eines Gitters dynamisch erzeugt werden. Diese dynamisch erzeugten Gitter schließen sich den anderen anhängigen Gittern in der Ansammlung anhängiger Gitter an.
  • In einer Ausführungsform führt die CPU einen Treiber-Kernel aus, der eine Anwendungsprogrammierschnittstelle (API) einrichtet, die es einer oder mehreren Anwendungen, die in der CPU ausgeführt werden, ermöglicht, Operationen für die Ausführung in der PPU 400 zu disponieren. Eine Anwendung kann Befehle (beispielsweise API-Aufrufe) enthalten, die den Treiber-Kernel veranlassen, ein oder mehrere Gitter für die Ausführung zu erzeugen. In einer Ausführungsform realisiert die PPU 400 eine SIMD-(Einzelbefehl-Mehrfach-Daten)Architektur, in der jeder Strangblock (d. h. Kette) in einem Gitter gleichzeitig mit einem anderen Datensatz von den unterschiedlichen Strängen in dem Strangblock ausgeführt wird. Der Treiber-Kernel definiert Strangblöcke, die aus k zusammengehörenden Strängen aufgebaut sind, so dass Stränge in dem gleichen Strangblock Daten über den gemeinsam benutzten Speicher austauschen können. In einer Ausführungsform umfasst ein Strangblock 32 zusammengehörende Stränge und ein Gitter ist ein Array aus einem oder mehreren Strangblöcken, die den gleichen Strom ausführen, und die unterschiedlichen Strangblöcke können Daten über den globalen Speicher austauschen.
  • In einer Ausführungsform umfasst die PPU 400 X SM 450(X). Beispielsweise kann die PPU 400 15 unterschiedliche SM 450 enthalten. Jeder SM 450 ist mehrsträngig und ausgebildet, mehrere Stränge (beispielsweise 32 Stränge) aus einem speziellen Strangblock gleichzeitig auszuführen. Jeder der SM 450 ist mit einem Cache-Speicher der Ebene zwei (L2) 465 über eine Kreuzungseinheit 460 (oder eine andere Art an Verbindungsnetzwerk) verbunden. Der L2-Cache-Speicher 465 ist mit einer oder mehreren Speicherschnittstellen 480 verbunden. Die Speicherschnittstellen 480 realisieren 16, 32, 64, 128-Bit-Datenbusse oder dergleichen für eine Hochgeschwindigkeitsdatenübertragung. In einer Ausführungsform umfasst die PPU 400 U Speicherschnittstellen 480(U), wobei jede Speicherschnittstelle 480(U) mit einer entsprechenden Speichereinrichtung 404(U) verbunden ist. Beispielsweise kann die PPU 400 mit bis zu 6 Speichereinrichtungen 404 verbunden sein, etwa einem grafischen Speicher mit doppelter Datenrate der Version 5 in Form eines synchronen dynamischen Speichers mit wahlfreiem Zugriff (GDDR5 SDRAM).
  • In einer Ausführungsform realisiert die PPU 400 eine Mehrebenen-Speicherhierarchie. Der Speicher 404 ist außerhalb des Chips im SDRAM angeordnet, der mit der PPU 400 verbunden ist. Daten aus dem Speicher 404 können abgeholt und in dem L2-Cache-Speicher 465 gespeichert werden, der auf dem Chip angeordnet ist und gemeinsam von den diversen SM 450 benutzt wird. In einer Ausführungsform realisiert jeder der SM 450 auch einen L1-Cache-Speicher. Der L1-Cache-Speicher ist ein privater Speicher, der einem jeweiligen SM 450 zugeordnet ist. Jeder der L1-Cache-Speicher ist mit dem gemeinsam benutzten L2-Cache-Speicher 465 verbunden. Daten aus dem L2-Cache Speicher 465 können abgeholt und in jedem der L1-Cache-Speicher zur Verarbeitung in den Funktionseinheiten der SM 450 gespeichert werden.
  • In einer Ausführungsform umfasst die PPU 400 eine grafische Verarbeitungseinheit (GPU). Die PPU 400 ist ausgebildet, Befehle zu empfangen, die Schattierungsprogramme für die Verarbeitung von Grafikdaten angeben. Grafikdaten können als eine Gruppe aus primitiven Elementen bzw. Grundelementen definiert sein, etwa Punkte, Linien, Dreiecke, Quadrate, Dreiecksstreifen und dergleichen. Typischerweise enthält ein Grundelement Daten, die eine Anzahl von Vertices bzw. Eckpunkten für das Grundelement angeben (beispielsweise in einem Modellraum-Koordinatensystem) sowie Attribute, die jedem Eckpunkt des Grundelements zugeordnet sind. Die PPU 400 kann ausgebildet sein, die grafischen Grundelemente zu verarbeiten, um einen Blockpuffer bzw. Bildpuffer (d. h. Pixeldaten für jedes der Pixel der Anzeige) zu erzeugen. Der Treiber-Kernel realisiert eine Grafikverarbeitungs-Pipeline, etwa die Grafikverarbeitungs-Pipeline, die durch die OpenGL-API definiert ist.
  • Eine Anwendung speichert Modelldaten für eine Szene (d. h. eine Ansammlung von Eckpunkten und Attributen) in dem Speicher. Die Modelldaten definierten alle Objekte, die auf einer Anzeige sichtbar sind. Die Anwendung tätigt dann einen API-Aufruf zu dem Treiber-Kernel, der anfordert, dass die Modelldaten als Bild erzeugt und angezeigt werden. Der Treiber-Kernel liest die Modelldaten aus und schreibt Befehle in den Puffer, um eine oder mehrere Operationen zur Verarbeitung der Modelldaten auszuführen. Die Befehle können unterschiedliche Schattierungsprogramme kodieren, wozu eines oder mehrere der folgenden gehören: die Vertex-Schattierung, eine Hüllen-Schattierung, eine Geometrie-Schattierung, eine Pixel-Schattierung, usw. Beispielsweise kann die GMU 415 einen oder mehrere SM 450 konfigurieren, um ein Vertex-Schattierungsprogramm auszuführen, das eine Anzahl von Eckpunkten bearbeitet, die durch die Modelldaten definiert sind. In einer Ausführungsform kann die GMU 415 unterschiedliche SM 450 konfigurieren, so dass diese unterschiedliche Schattierungsprogramme gleichzeitig ausführen. Beispielsweise kann eine erste Teilgruppe an SM 450 ausgebildet sein, ein Vertex-Schattierungsprogramm auszuführen, während eine zweite Teilgruppe von SM 450 ausgebildet sein kann, ein Pixel-Schattierungsprogramm auszuführen. Die erste Teilgruppe an SM 450 verarbeitet Vertex-Daten, um verarbeitete Vertex-Daten zu erzeugen und schreibt die verarbeiteten Vertex-Daten in den L2-Cache-Speicher 465 und/oder in den Speicher 404. Nachdem die verarbeiteten Vertex-Daten in ein Raster unterteilt sind (d. h. von dreidimensionalen Daten in zweidimensionale Daten in einem Bildschirm-Raum transformiert sind), um Fragmentdaten zu erzeugen, führt die zweite Teilgruppe an SM 450 eine Pixel-Schattierung aus, um verarbeitete Fragmentdaten zu erzeugen, die dann mit anderen verarbeiteten Fragmentdaten gemischt werden und in den Blockpuffer im Speicher 404 geschrieben werden. Das Vertex-Schattierungsprogramm und das Pixel-Schattierungsprogramm können gleichzeitig ausgeführt werden, wodurch unterschiedliche Daten aus der gleichen Szene in einer parallelen Weise bzw. in der Art einer Pipeline verarbeitet werden, bis alle Modelldaten für die Szene in dem Blockpuffer als Bild erzeugt sind. Danach wird der Inhalt des Blockpuffers an eine Anzeigesteuerung zur Anzeige auf einer Anzeigeeinrichtung gesendet.
  • Die PPU 400 kann in einem Tischrechner, einem tragbaren Rechner, einem Tablett-Rechner, einem intelligenten Telefon (beispielsweise einem drahtlosen Handgerät), einem persönlichen digitalen Assistenten (PDA), einer Digitalkamera, einem elektronischen Handgerät und dergleichen enthalten sein. In einer Ausführungsform ist die PPU 400 in einem einzelnen Halbleitersubstrat eingerichtet. In einer weiteren Ausführungsform ist die PPU 400 in einem System-auf-einem-Chip (SoC) zusammen mit einer oder mehreren anderen Logikeinheiten enthalten, etwa einer CPU mit reduziertem Befehlssatz (RISC), einer Speicherverwaltungseinheit (MMU), einem Digital-Analog-Wandler (DAC) und dergleichen.
  • In einer Ausführungsform kann die PPU 400 in einer Grafikkarte enthalten sein, die eine oder mehrere Speichereinrichtungen 404, etwa den GDDR5 SDRAM, enthält. Die Grafikkarte kann ausgebildet sein, mit einem PCIe-Steckplatz auf einer Hautplatine eines Tischrechners verbunden zu werden, die beispielsweise einen Nordbrücken-Chipsatz und einen Südbrücken-Chipsatz enthält. In einer noch weiteren Ausführungsform kann die PPU 400 in einer integrierten Graphikverarbeitungseinheit (iGPU) integriert sein, die in dem Chipsatz (beispielsweise Nordbrücke) der Hauptplatine enthalten ist.
  • 5 zeigt den Datenstrom-Multiprozessor 450 aus 4 gemäß einer Ausführungsform. Wie in 5 gezeigt ist, umfasst der SM 450 einen Befehls-Cache-Speicher 505, eine oder mehrere Disponiereinheiten 510, eine Registerdatei 520, einen oder mehrere Verarbeitungskerne 550, eine oder mehrere Einheiten mit doppelter Genauigkeit (DPU) 551, eine oder mehrere Spezialfunktionseinheiten (SFU) 552, eine oder mehrere Lade/Speichereinheiten (LSU) 553, ein Verbindungsnetzwerk 580, einen gemeinsam benutzten Speicher/L1-Cache-Speicher 570 und eine oder mehrere Textureinheiten 590.
  • Wie zuvor beschrieben ist, gibt die Arbeitsverteilungseinheit 420 aktive Gitter für die Verarbeitung an einen oder mehrere SM 450 der PPU 400 aus. Die Disponiereinheit 510 empfängt die Gitter aus der Arbeitsverteilungseinheit 420 und verwaltet die Befehlsdisponierung für einen oder mehrere Strangblöcke jedes aktiven Gitters. Die Disponiereinheit 510 disponiert Stränge für die Ausführung in Gruppen paralleler Stränge, wobei jede Gruppe als eine Kette bezeichnet wird. In einer Ausführungsform enthält jede Kette 32 Stränge. Die Disponiereinheit 510 kann mehrere unterschiedliche Strangblöcke verwalten, wobei die Strangblöcke in Ketten für Ausführungen zugeordnet werden und wobei dann Befehle aus den mehreren unterschiedlichen Ketten für die diversen Funktionseinheiten (beispielsweise die Kerne 550, DPU 551, SFU 552 und LSU 553) während jedes Taktzyklus disponiert werden.
  • In einer Ausführungsform umfasst die Disponiereinheit 510 eine oder mehrere Befehlsausgabeeinheiten 515. Jede Ausgabeeinheit 515 ist ausgebildet, Befehle an eine oder mehrere der Funktionseinheiten zu übertragen. In der in 5 gezeigten Ausführungsform umfasst die Disponiereinheit 510 zwei Ausgabeeinheiten 515, die zwei unterschiedliche Befehle aus der gleichen Kette während jedes Taktzyklus ausgeben können. In alternativen Ausführungsformen kann jede Disponiereinheit 510 eine einzelne Ausgabeeinheit 515 oder zusätzliche Ausgabeeinheiten 515 enthalten.
  • Jeder SM 450 enthält eine Registerdatei 520, die eine Gruppe aus Registern für die Funktionseinheiten der SM 450 bereitstellt. In einer Ausführungsform ist die Registerdatei 520 auf jeweils die Funktionseinheiten derart aufgeteilt, dass jeder Funktionseinheit ein spezieller Teilbereich der Registerdatei 520 zugewiesen ist. In einer weiteren Ausführungsform ist die Registerdatei 520 auf die unterschiedlichen Ketten, die von den SM 450 ausgeführt werden, aufgeteilt. Die Registerdatei 520 stellt temporären Speicherplatz für Operanden bereit, die mit den Datenpfaden der Funktionseinheiten verbunden sind.
  • Jeder SM 450 umfasst L Verarbeitungskerne 550. In einer Ausführungsform enthält der SM 450 eine große Anzahl (beispielsweise 192 usw.) an verschiedenen Verarbeitungskernen 550. Jeder Kern 550 ist eine Verarbeitungseinheit mit einfacher Genauigkeit mit vollständiger Pipeline-Ausgestaltung, die eine Gleitkommaarithmetik-Logikeinheit und eine Ganzzahlarithmetik-Logikeinheit enthält. In einer Ausführungsform realisieren die Gleitkommaarithmetik-Logikeinheiten den IEEE 754-2008-Standard für eine Gleitkommaarithmetik. Jeder SM 450 umfasst ferner N DPU 551, die eine Gleitkommaarithmetik mit doppelter Genauigkeit realisieren, N SFU 552, die spezielle Funktionen (beispielsweise Kopieren eines Rechtecks, Operationen zur Pixelvermischung, und dergleichen) ausführen, und P LSU 553, die Ladeoperationen und Speicheroperationen zwischen dem gemeinsam benutzten Speicher/L1-Cache-Speicher 570 und der Registerdatei 520 realisieren. In einer Ausführungsform umfasst der SM 450 64 DPU 551, 32 SFU 552 und 32 LSU 553.
  • Jeder SM 450 umfasst ein Verbindungsnetzwerk 580, das jede der Funktionseinheiten mit der Registerdatei 520 und mit dem gemeinsam benutzten Speicher/L1-Cache-Speicher 570 verbindet. In einer Ausführungsform ist das Verbindungsnetzwerk 580 eine Kreuzungseinheit, die ausgebildet sein kann, eine beliebige Funktionseinheit mit einem beliebigen Register in der Registerdatei 520 oder den Speicherstellen in dem gemeinsam benutzten Speicher/1-Cache-Speicher 570 zu verbinden.
  • In einer Ausführungsform ist der SM 450 in einer GPU realisiert. In einer derartigen Ausführungsform umfasst der SM 450 J Textureinheiten 590. Die Textureinheiten 590 sind ausgebildet, Texturzuordnungen zu laden (d. h. ein 2D-Array aus Textelementen) aus dem Speicher 404 und die Texturzuordnungen abzutasten, um abgetastete Texturwerte zur Verwendung in Schattierungsprogrammen zu erzeugen. Die Textureinheiten 590 realisieren Texturoperationen, etwa Fehlerbehebungsoperationen unter Anwendung von mit-Zuordnungen (d. h. Texturzuordnungen mit variierendem Grad an Detail). In einer Ausführungsform umfasst der SM 450 16 Textureinheiten 590.
  • Die zuvor beschriebene PPU 400 kann ausgebildet sein, äußerst parallele Berechnungen wesentlich schneller als konventionelle CPUs auszuführen. Die parallele Berechnung hat Vorteile bei der Grafikverarbeitung, der Datenkomprimierung, bei biometrischen Aufgaben, bei Stromverarbeitungseinheiten und dergleichen.
  • 6 zeigt ein anschauliches System 600, in welchem die diversen Architekturen und/oder Funktionen der diversen vorhergehenden Ausführungsformen realisiert werden können. Wie gezeigt, ist ein System 600 bereitgestellt, das zumindest einen zentralen Prozessor 601 enthält, der mit einem Kommunikationsbus 602 verbunden ist. Der Kommunikationsbus 602 kann unter Anwendung eines beliebigen geeigneten Protokolls realisiert werden, etwa durch PCI (periphere Komponenten-Verbindung), PCI-Express, AGP (beschleunigter Graphikport), HyperTransport oder durch ein oder mehrere andere Busprotokolle oder Punkt-Zu-Punkt-Protokollen. Das System 600 enthält ferner einen Hauptspeicher 604. Steuerungslogik (Software) und Daten werden in dem Hauptspeicher 604 gespeichert, der die Form eines Speichers mit wahlfreiem Zugriff (RAM) besitzen kann.
  • Das System 600 umfasst ferner Eingabegeräte 602, einen grafischen Prozessor 606 und eine Anzeige 608, das heißt eine konventionelle CRT (Kathodenstrahlröhre), eine LCD (Flüssigkristallanzeige), eine LED (lichtemittierende Diode), eine Plasmaanzeige oder dergleichen. Eine Anwendereingabe kann von den Eingabegeräten 612 empfangen werden, beispielsweise Tastatur, Maus, berührungsempfindliches Feld, Mikrofon, und dergleichen. In einer Ausführungsform kann der Grafikprozessor 606 mehrere Schattierungsprogramme, ein Rastermodul usw. enthalten. Jedes der vorhergehenden Module kann in einer einzelnen Halbleiterplattform angeordnet sein, um eine grafische Verarbeitungseinheit (GPU) zu bilden.
  • In der vorliegenden Beschreibung kann eine einzelne Halbleiterplattform eine einzelne alleinstehende integrierte Schaltung oder einen integrierten Schaltungschip auf Halbleiterbasis bezeichnen. Es sollte beachtet werden, dass der Begriff einzelne Halbleiterplattform auch mehr Chip-Module mit vergrößerter Verbindungsstruktur bezeichnen kann, die eine Funktionsweise eines einzelnen Chips simulieren, und deutliche Verbesserungen gegenüber der Verwendung einer konventionellen Realisierung mit zentraler Recheneinheit (CPU) und Bus bieten. Selbstverständlich können die diversen Module auch separat oder in diversen Kombinationen von Hardwareplattformen entsprechend den Bedürfnissen des Anwenders angeordnet sein.
  • Das System 600 kann ferner einen sekundären Speicher 610 enthalten. Der sekundäre Speicher 610 umfasst beispielsweise eine Festplatte und/oder eine entfernbaren Speicherplatte, die ein Diskettenlaufwerk, ein magnetisches Bandlaufwerk, ein Kompaktdiskettenlaufwerk, ein Laufwerk für eine digitale Vielseitigkeitsdiskette (DVD), eine Aufzeichnungseinrichtung, einen Flash-Speicher mit universellem seriellen Bus (USB) repräsentieren kann. Das entfernbare Speicherlaufwerk liest aus und/oder speichert in einer entfernbaren Speichereinheit in einer bekannten Weise.
  • Computerprogramme oder Computer-Steuerlogikalgorithmen können im Hauptspeicher 604 und/oder dem sekundären Speicher 610 gespeichert sein. Derartige Computerprogramme, versetzen bei der Ausführung das System 600 in die Lage, diverse Funktionen auszuführen. Der Speicher 604, der sekundäre Speicher 610 und/oder andere Speichereinrichtungen sind mögliche Beispiele von computerlesbaren Medien.
  • In einer Ausführungsform können die Architektur und/oder die Funktionen der diversen vorhergehenden Figuren im Zusammenhang mit dem zentralen Prozessor 601, dem Grafikprozessor 606, einer integrierten Schaltung (nicht gezeigt), die in der Lage ist, zumindest einen Teil der Eigenschaften des zentralen Prozessors 601 und des Grafikprozessors 606 zu verwirklichen, mit einem Chipsatz (d. h. einer Gruppe aus integrierten Schaltungen, die gestaltet sind, als eine Einheit zur Ausführung zusammengehörender Funktionen zu arbeiten und als solche verkauft zu werden, usw.) und/oder mit einer anderen integrierten Schaltung für diesen Zweck realisiert werden.
  • Ferner können die Architektur und/oder die Funktionen der diversen vorhergehenden Figuren auch im Zusammenhang mit einem allgemeinen Computersystem, einem Leiterplattensystem, einem Spielekonsolensystem, das für Unterhaltungszwecke vorgesehen ist, einem anwendungsspezifischen System und/oder einem anderen gewünschten System realisiert werden. Beispielsweise kann das System 600 die Form eines Tischrechners, eines mobilen Rechners, eines Dienstleister-Rechners, eines Arbeitplatzrechners, von Spielekonsolen, eines eingebetteten Systems und/oder einer anderen Art an Logik annehmen. Ferner kann das System 600 die Form diverser anderer Einrichtungen haben, wozu gehören, ohne einschränkend zu sein, ein persönlicher digitaler Assistent (PDA), eine Mobiltelefoneinrichtung, ein Fernsehgerät, usw.
  • Obwohl ferner dies nicht gezeigt ist, kann das System 600 mit einem Netzwerk (beispielsweise einem Telekommunikationsnetzwerk, einem Nahbereichsnetzwerk (LAN), einem drahtlosen Netzwerk, einem Weitbereichsnetzwerk (WAN), etwa dem Internet, ein Gerät-zu-Gerät-Netzwerk, einem Kabelnetzwerk oder dergleichen) für Kommunikationszwecke verbunden sein.
  • Obwohl zuvor diverse Ausführungsformen beschrieben worden sind, ist zu beachten, dass diese als Beispiel und nicht als Einschränkung präsentiert worden sind. Somit sollte die Breite und der Schutzbereich einer bevorzugten Ausführungsform nicht durch eine der zuvor beschriebenen anschaulichen Ausführungsformen eingeschränkt sein, und sollte nur entsprechend den folgenden Patentansprüchen und ihren äquivalenten festgelegt sein.
  • 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 Nicht-Patentliteratur
    • IEEE 754-2008-Standard [0065]

Claims (20)

  1. Ein Verfahren umfassend: Initialisieren einer Schreibunterstützungsschaltung; Initiieren eines Spannungseinbruchs zur Reduzierung einer Spaltenversorgungsspannung, die einer Speicherzelle bereitgestellt wird; Boosten einer Bitleitung der Speicherzelle auf einen Boost-Spannungspegel, der unter einer tiefen Versorgungsspannung, die der Speicherzelle bereitgestellt wird, liegt; und Schreiben von Daten, die durch die Bitleitung kodiert sind, in die Speicherzelle.
  2. Das Verfahren nach Anspruch 1, das ferner vor dem Boosten der Bitleitung Laden eines Boost-Kondensators umfasst.
  3. Das Verfahren nach Anspruch 1, wobei der Spannungseinbruch umfasst: teilweise Einbrechenlassen der Spaltenversorgungsspannung, die der Speicherzelle zugeleitet ist, auf einen teilweise eingebrochenen Spannungspegel, der tiefer als eine hohe Versorgungsspannung ist, während gleichzeitig ein Boost-Kondensator geladen wird.
  4. Das Verfahren nach Anspruch 3, wobei der Spannungseinbruch ferner umfasst: Beenden des Spannungseinbruchs durch Herunterziehen der Spaltenversorgungsspannung, die der Speicherzelle bereitgestellt wird, auf einen eingebrochenen Spannungspegel.
  5. Das Verfahren nach Anspruch 1, das ferner umfasst: Wiederherstellen der Spaltenversorgungsspannung an die Speicherzelle auf eine hohe Versorgungsspannung, um das Schreiben der Daten zu beenden.
  6. Das Verfahren nach Anspruch 1, das ferner nach dem Schreiben umfasst: Deaktivieren des Boosten, um die Bitleitung wieder auf die tiefe Versorgungsspannung zu legen.
  7. Das Verfahren nach Anspruch 1, das ferner umfasst: Konfigurieren der Schreibunterstützungsschaltung derart, dass sowohl das Boosten der Bitleitung als auch die Initialisierung des Spannungseinbruchs für eine Leseoperation deaktiviert werden.
  8. Das Verfahren nach Anspruch 1, wobei die Schreibunterstützungsschaltung ausgebildet ist, Bitleitung der Speicherzelle um mindestens zwei unterschiedliche Beträge zu boosten.
  9. Das Verfahren nach Anspruch 1, das ferner umfasst: Konfigurieren der Schreibunterstützungsschaltung, um den Spannungseinbruch zu deaktivieren; Boosten der Bitleitung der Speicherzelle; und Schreiben zweiter Daten, die von der Bitleitung kodiert sind, in die Speicherzelle.
  10. Das Verfahren nach Anspruch 1, wobei die Schreibunterstützungsschaltung gemeinsam von zwei oder mehr Spalten innerhalb eines Arrays aus Speicherzellen verwendet wird.
  11. Eine integrierte Schaltung umfassend: einer Speicherzellenschaltung; und einer Schreibunterstützungsschaltung, die mit der Speicherzellenschaltung verbunden und ausgebildet ist, um: einen Spannungseinbruchs zu initiieren, um eine Spaltenversorgungsspannung, die der Speicherzelle bereitgestellt wird, in Reaktion auf eine Schreibanforderung zu reduzieren; eine Bitleitung der Speicherzelle auf einen Boost-Spannungspegel zu boosten, der unter einer tiefen Versorgungsspannung, die der Speicherzelle zugeleitet ist, liegt; und Daten, die von der Bitleitung kodiert sind, in die Speicherzelle zu schreiben.
  12. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung einen Boost-Kondensator umfasst und wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, eine Spannung über den Boost-Kondensator zu erzeugen.
  13. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, die Spaltenversorgungsspannung, die der Speicherzelle bereitgestellt wird, teilweise auf einen teilweise eingebrochenen Spannungspegel einbrechen zu lassen, der tiefer liegt als eine hohe Versorgungsspannung, während gleichzeitig ein Boost-Kondensator geladen wird.
  14. Die integrierte Schaltung nach Anspruch 13, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, den Spannungseinbruch zu beenden, indem die Spaltenversorgungsspannung, die der Speicherzelle bereitgestellt wird, auf einen eingebrochenen Spannungspegel herabgezogen wird.
  15. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, die Spaltenversorgungsspannung entsprechend einer hohen Versorgungsspannung wiederherzustellen, um das Schreiben der Daten zu beenden.
  16. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, das Boosten der Bitleitung zu deaktivieren, um die Bitleitung entsprechend der tiefen Versorgungsspannung wiederherzustellen, nachdem die Daten geschrieben sind.
  17. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, sowohl das Boosten der Bitleitung als auch die Initiierung des Spannungseinbruchs für eine Leseoperation zu deaktivieren.
  18. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, um: den Spannungseinbruch zu deaktivieren; die Bitleitung der Speicherzelle zu boosten; und zweite Daten, die von der Bitleitung kodiert sind, in die Speicherzelle zu schreiben.
  19. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung ferner ausgebildet ist, die Bitleitung der Speicherzelle durch mindestens zwei unterschiedliche Beträge entsprechend einem Steuersignal zu boosten.
  20. Die integrierte Schaltung nach Anspruch 11, wobei die Schreibunterstützungsschaltung von zwei oder mehr Spalten innerhalb eines Arrays aus Speicherzellen gemeinsam nutzbar ist.
DE102013224082.1A 2012-12-10 2013-11-26 System und Verfahren zur Ausführung einer SRAM-Schreibunterstützung Active DE102013224082B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/710,314 2012-12-10
US13/710,314 US8861290B2 (en) 2012-12-10 2012-12-10 System and method for performing SRAM write assist

Publications (2)

Publication Number Publication Date
DE102013224082A1 true DE102013224082A1 (de) 2014-06-12
DE102013224082B4 DE102013224082B4 (de) 2022-08-25

Family

ID=50778370

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013224082.1A Active DE102013224082B4 (de) 2012-12-10 2013-11-26 System und Verfahren zur Ausführung einer SRAM-Schreibunterstützung

Country Status (4)

Country Link
US (1) US8861290B2 (de)
CN (1) CN103871457B (de)
DE (1) DE102013224082B4 (de)
TW (1) TWI527033B (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378788B2 (en) 2012-03-15 2016-06-28 Intel Corporation Negative bitline write assist circuit and method for operating the same
US9318188B2 (en) 2013-06-14 2016-04-19 Taiwan Semiconductor Manufacturing Co., Ltd. Semiconductor memory with data line capacitive coupling
US9177633B2 (en) * 2014-03-05 2015-11-03 Avago Technologies General Ip (Singapore) Pte Ltd Bit line write assist for static random access memory architectures
US20160093624A1 (en) 2014-09-25 2016-03-31 Kilopass Technology, Inc. Thyristor Volatile Random Access Memory and Methods of Manufacture
US9741413B2 (en) 2014-09-25 2017-08-22 Kilopass Technology, Inc. Methods of reading six-transistor cross-coupled thyristor-based SRAM memory cells
US9564441B2 (en) 2014-09-25 2017-02-07 Kilopass Technology, Inc. Two-transistor SRAM semiconductor structure and methods of fabrication
US9530482B2 (en) 2014-09-25 2016-12-27 Kilopass Technology, Inc. Methods of retaining and refreshing data in a thyristor random access memory
US9613968B2 (en) 2014-09-25 2017-04-04 Kilopass Technology, Inc. Cross-coupled thyristor SRAM semiconductor structures and methods of fabrication
US9460771B2 (en) * 2014-09-25 2016-10-04 Kilopass Technology, Inc. Two-transistor thyristor SRAM circuit and methods of operation
US9564199B2 (en) 2014-09-25 2017-02-07 Kilopass Technology, Inc. Methods of reading and writing data in a thyristor random access memory
US9449669B2 (en) 2014-09-25 2016-09-20 Kilopass Technology, Inc. Cross-coupled thyristor SRAM circuits and methods of operation
US10650882B2 (en) * 2014-10-15 2020-05-12 Taiwan Semiconductor Manufacturing Company, Ltd. Static random access memory with a supplementary driver circuit and method of controlling the same
TWI566255B (zh) * 2014-12-01 2017-01-11 修平學校財團法人修平科技大學 5t靜態隨機存取記憶體
US9449680B2 (en) * 2015-01-06 2016-09-20 Mediatek Inc. Write assist circuit and memory cell
US9496025B2 (en) * 2015-01-12 2016-11-15 International Business Machines Corporation Tunable negative bitline write assist and boost attenuation circuit
US9741452B2 (en) 2015-02-23 2017-08-22 Qualcomm Incorporated Read-assist circuits for memory bit cells employing a P-type field-effect transistor (PFET) read port(s), and related memory systems and methods
US10026456B2 (en) 2015-02-23 2018-07-17 Qualcomm Incorporated Bitline positive boost write-assist circuits for memory bit cells employing a P-type Field-Effect transistor (PFET) write port(s), and related systems and methods
US9548104B1 (en) 2015-06-30 2017-01-17 International Business Machines Corporation Boost control to improve SRAM write operation
US9542998B1 (en) 2015-11-02 2017-01-10 Synopsys, Inc Write assist circuit integrated with leakage reduction circuit of a static random access memory for increasing the low voltage supply during write operations
US9508420B1 (en) * 2016-01-28 2016-11-29 Globalfoundries Inc Voltage-aware adaptive static random access memory (SRAM) write assist circuit
US10522214B2 (en) * 2016-06-09 2019-12-31 Synopsys, Inc. Robust negative bit-line and reliability aware write assist
US9940999B2 (en) 2016-06-22 2018-04-10 Darryl G. Walker Semiconductor devices, circuits and methods for read and/or write assist of an SRAM circuit portion based on voltage detection and/or temperature detection circuits
US10403384B2 (en) 2016-06-22 2019-09-03 Darryl G. Walker Testing a semiconductor device including a voltage detection circuit and temperature detection circuit that can be used to generate read assist and/or write assist in an SRAM circuit portion and method therefor
US9779802B1 (en) 2016-06-30 2017-10-03 National Tsing Hua University Memory apparatus and write failure responsive negative bitline voltage write assist circuit thereof
US9875790B1 (en) * 2017-03-31 2018-01-23 Qualcomm Incorporated Boost charge recycle for low-power memory
US10541023B2 (en) * 2017-09-04 2020-01-21 Mediatek Inc. Data line control circuit using write-assist data line coupling and associated data line control method
US10186312B1 (en) 2017-10-12 2019-01-22 Globalfoundries Inc. Hybrid stack write driver
US10381054B1 (en) * 2018-02-27 2019-08-13 Globalfoundries Inc. Common boosted assist
US10522217B1 (en) 2018-08-08 2019-12-31 Globalfoundries Inc. Column-dependent positive voltage boost for memory cell supply voltage
US10446223B1 (en) 2018-08-29 2019-10-15 Bitfury Group Limited Data storage apparatus, and related systems and methods
US10811086B1 (en) * 2019-07-26 2020-10-20 Qualcomm Incorporated SRAM write yield enhancement with pull-up strength modulation
TWI699764B (zh) * 2019-11-04 2020-07-21 瑞昱半導體股份有限公司 記憶體寫入裝置及方法
JP7234172B2 (ja) * 2020-03-05 2023-03-07 株式会社東芝 半導体記憶装置
US11450364B2 (en) * 2020-08-27 2022-09-20 Taiwan Semiconductor Manufacturing Company Ltd. Computing-in-memory architecture
CN113314175B (zh) * 2021-05-25 2023-11-21 海光信息技术股份有限公司 一种写辅助装置及其工作方法、存储器
US11972793B2 (en) 2021-09-15 2024-04-30 Mavagail Technology, LLC Integrated circuit device including an SRAM portion having end power select circuits

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400523B2 (en) 2006-06-01 2008-07-15 Texas Instruments Incorporated 8T SRAM cell with higher voltage on the read WL
EP2201569A4 (de) * 2007-09-06 2011-07-13 Tabula Inc Konfigurationskontextwechsler
JP5144219B2 (ja) * 2007-11-07 2013-02-13 パナソニック株式会社 半導体記憶装置
US20090161410A1 (en) 2007-12-21 2009-06-25 Texas Instruments Inc. Seven transistor sram cell
US7800959B2 (en) 2008-09-19 2010-09-21 Freescale Semiconductor, Inc. Memory having self-timed bit line boost circuit and method therefor
US8634263B2 (en) 2009-04-30 2014-01-21 Freescale Semiconductor, Inc. Integrated circuit having memory repair information storage and method therefor
KR101799482B1 (ko) * 2010-12-29 2017-11-20 삼성전자주식회사 기입 어시스트 회로를 포함하는 정적 메모리 장치
US8411518B2 (en) 2010-12-29 2013-04-02 Stmicroelectronics Pvt. Ltd. Memory device with boost compensation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE 754-2008-Standard

Also Published As

Publication number Publication date
TWI527033B (zh) 2016-03-21
US8861290B2 (en) 2014-10-14
US20140160871A1 (en) 2014-06-12
TW201440047A (zh) 2014-10-16
DE102013224082B4 (de) 2022-08-25
CN103871457A (zh) 2014-06-18
CN103871457B (zh) 2017-04-12

Similar Documents

Publication Publication Date Title
DE102013224082B4 (de) System und Verfahren zur Ausführung einer SRAM-Schreibunterstützung
DE102018126342A1 (de) Transformieren von faltenden neuronalen netzen zum lernen von visuellen sequenzen
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
DE102018132468A1 (de) Multi-gpu-frame-rendern
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102019103326A1 (de) Robuste, effiziente multiprozessor-koprozessor-schnittstelle
DE102015113797A1 (de) Relative Kodierung für eine blockbasierte Begrenzungsvolumenhierarchie
DE102018127647A1 (de) Systeme und verfahren zum trainieren neuronaler netzwerke auf regression ohne referenzdaten-trainingsmuster
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE102013114279A1 (de) Oberflächenverarbeitung mit Mehrfachabtastung unter Verwendung einer einzelnen Abtastung
DE102013114373A1 (de) Konsistente Vertex-Einrastung für Rendering mit variabler Auflösung
DE102008005865A1 (de) Halbleiterspeicherbauelement, Verfahren zum Steuern eines Zugriffs auf eine Mailbox in einem Halbleiterspeicherbauelement und computerlesbares Speichermedium
DE112011105670B4 (de) Verschiebbarer Speicher, der Ringregister verwendet
DE102013020810A1 (de) Effiziente Super-Abtastung mit Schattierungs-Strängen pro Pixel
DE102013020485A1 (de) Technik zur Ausführung von Speicherzugriffsoperationen über eine Textur-Hardware
DE112013007486T5 (de) Speicherzelle mit Retention unter Verwendung eines resistiven Speichers
DE112012005060B4 (de) Höhere Energieeinsparung bei Speicher-Arrays
DE102013006396A1 (de) Eine grafikverarbeitungseinheit, in der eine standardverarbeitungseinheit verwendet ist, und ein verfahren zum aufbau einer grafikverarbeitungseinheit
DE112018004191B4 (de) Digital unterstützte flash-auffrischung
DE102020130184A1 (de) Optimierungsmechanismus mit spärlich besetzten matrizen
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE102013020967A1 (de) Technik zur Ausführung von Speicherzugriffsoperationen über eine Textur-Hardware
DE102013018135A1 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE102022121773A1 (de) In-memory-assoziativverarbeitungssystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final