DE102022109998A1 - Speicherschnittstelle - Google Patents

Speicherschnittstelle Download PDF

Info

Publication number
DE102022109998A1
DE102022109998A1 DE102022109998.9A DE102022109998A DE102022109998A1 DE 102022109998 A1 DE102022109998 A1 DE 102022109998A1 DE 102022109998 A DE102022109998 A DE 102022109998A DE 102022109998 A1 DE102022109998 A1 DE 102022109998A1
Authority
DE
Germany
Prior art keywords
memory
address
data
signal
burst
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.)
Pending
Application number
DE102022109998.9A
Other languages
English (en)
Inventor
Hiroki Noguchi
Yih Wang
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC Ltd
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 Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of DE102022109998A1 publication Critical patent/DE102022109998A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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

Abstract

Eine Speicherschnittstellenschaltung enthält einen Anforderungsdecoder, der dafür eingerichtet ist, ein Befehlssignal und ein Adresssignal zu empfangen. Der Anforderungsdecoder ist dafür eingerichtet, das Befehlssignal und das Adresssignal zu decodieren, um ein Datenzählsignal und ein Startadresssignal zu erzeugen. Ein Burst-Zähler ist mit dem Anforderungsdecoder gekoppelt, und der Burst-Zähler ist dafür eingerichtet, das Datenzählsignal nach jedem Zugriff eines Speichers zu aktualisieren. Ein Adressgenerator ist mit dem Anforderungsdecoder gekoppelt. Der Adressgenerator ist dafür eingerichtet, das Startadresssignal zu empfangen und ein nachfolgendes Speicheradresssignal basierend auf dem Startadresssignal nach jedem Zugriff des Speichers zu erzeugen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung Nr. 63/298,833 , eingereicht am 12. Januar 2022, mit dem Titel „Memory Interface“, deren Offenbarung hiermit durch Bezugnahme hierin aufgenommen wird.
  • HINTERGRUND
  • Das Abrufen von Daten aus dem physischen Speicher durch die zentrale Verarbeitungseinheit (CPU) des Systems ist zeitaufwendig. Die zugehörige Datenlatenz beinhaltet eine lange Round-Trip-Latenz der CPU, um eine Anweisung an den Speicher zu übertragen, und des Speichers, um die spezifizierten Daten an die CPU zurückzugeben. Einige Datenzugriffsanwendungen, wie Datenbankoperationen, künstliche Intelligenz (KI), Big Data usw., beinhalten oft erhebliche Speicherzugriffstransaktionen für Suche und Vergleich.
  • Figurenliste
  • Aspekte der vorliegenden Offenbarung lassen sich am besten anhand der nachstehenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen verstehen. Es ist zu beachten, dass entsprechend der üblichen Praxis in der Branche verschiedene Merkmale nicht maßstabsgetreu gezeichnet sind. Vielmehr können der Übersichtlichkeit der Erörterung halber die Abmessungen der verschiedenen Merkmale beliebig vergrößert oder verkleinert sein. Außerdem sind die Zeichnungen als Beispiele für Ausführungsformen der Erfindung veranschaulichend und sollen nicht einschränkend sein.
    • 1 ist ein Blockschaubild, das ein Beispiel für ein Computersystem gemäß einigen Ausführungsformen veranschaulicht.
    • 2 ist ein Blockschaubild, das ein Beispiel für ein Speicherarray des in 1 gezeigten Computersystems gemäß einigen Ausführungsformen veranschaulicht.
    • 3 ist eine schematische Darstellung, die ein Beispiel für eine Speicherzelle des in 2 gezeigten Speicherarrays gemäß einigen Ausführungsformen veranschaulicht.
    • 4 ist ein Blockschaubild, das Aspekte einer beispielhaften Speicherschnittstelle gemäß einigen Ausführungsformen veranschaulicht.
    • 5 ist ein Blockschaubild, das weitere Aspekte einer beispielhaften Speicherschnittstelle gemäß einigen Ausführungsformen veranschaulicht.
    • 6 ist ein Flussdiagramm, das ein Beispiel für ein Verfahren gemäß einigen Ausführungsformen veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehende Offenbarung stellt viele verschiedene Ausführungsformen oder Beispiele zum Implementieren verschiedener Merkmale des bereitgestellten Gegenstands bereit. Nachstehend werden spezielle Beispiele für Komponenten und Anordnungen beschrieben, um die vorliegende Offenbarung zu vereinfachen. Diese sind natürlich lediglich Beispiele und sollen nicht einschränkend sein. Zum Beispiel kann die Herstellung eines ersten Merkmals über oder auf einem zweiten Merkmal in der nachstehenden Beschreibung Ausführungsformen umfassen, bei denen das erste und das zweite Merkmal in direktem Kontakt ausgebildet werden, und sie kann auch Ausführungsformen umfassen, bei denen zusätzliche Merkmale zwischen dem ersten und dem zweiten Merkmal ausgebildet werden können, so dass das erste und das zweite Merkmal möglicherweise nicht in direktem Kontakt sind. Außerdem kann die vorliegende Offenbarung Bezugszahlen und/oder -buchstaben in den verschiedenen Beispielen wiederholen. Diese Wiederholung dient der Einfachheit und Übersichtlichkeit und schreibt an sich keine Beziehung zwischen den verschiedenen erörterten Ausführungsformen und/oder Konfigurationen vor.
  • Darüber hinaus können hier räumlich relative Begriffe, wie etwa „darunter befindlich“, „unter“, „untere(r)“/„unteres“, „darüber befindlich“, „über“, „obere(r)“/„oberes“ und dergleichen, zur einfachen Beschreibung der Beziehung eines Elements oder einer Struktur zu einem oder mehreren anderen Elementen oder Strukturen verwendet werden, die in den Figuren dargestellt sind. Die räumlich relativen Begriffe sollen zusätzlich zu der in den Figuren dargestellten Ausrichtung verschiedene Ausrichtungen der verwendeten oder betriebenen Vorrichtung einschließen. Die Vorrichtung kann anders ausgerichtet werden (um 90 Grad gedreht oder in einer anderen Ausrichtung), und hierin verwendete räumlich relative Deskriptoren können entsprechend interpretiert werden.
  • Computersysteme verwenden typischerweise verschiedene Speicheranordnungen zur Anweisungs- und Datenspeicherung. Ein Cache-Speicher kann bereitgestellt werden, um Datenabrufoperationen zu beschleunigen. Ein Cache-Speicher speichert Kopien von Daten, die an häufig verwendeten Hauptspeicherorten gefunden werden. Das Zugreifen auf Daten aus dem Cache-Speicher beschleunigt die Verarbeitung, da auf den Cache-Speicher typischerweise schneller zugegriffen werden kann als auf den Hauptspeicher. Ein Mehrebenen-Cache ist eine Struktur, in der es mehrere Cache-Speicher gibt. Zum Beispiel kann ein Datenverarbeitungssystem drei Ebenen aufweisen, d.h. einen L1-Cache, einen L2-Cache und einen L3-Cache. Typischerweise ist in einer Mehrebenen-Cache-Konfiguration L1 die kleinste und mit einer kurzen Zugriffszeit. Wenn angeforderte Daten nicht im L1-Cache gefunden werden, durchsucht das System den L2-Cache, der größer als der L1-Cache und physisch weiter entfernt als der L1-Cache sein kann, somit mit einer größeren Zugriffszeit. Wenn die Daten nicht im L2-Cache gefunden werden, wird der L3-Cache durchsucht. Wenn jedoch angeforderte Daten nicht im Cache-Speicher gefunden werden, kann es notwendig sein, die erforderlichen Daten aus dem Hauptspeicher abzurufen. Viele Datenverarbeitungsprozesse, wie die oben erörterten intensiven Datenzugriffsanwendungen, können erhebliche Zugriffe auf den Hauptspeicher erfordern.
  • Einige Datenverarbeitungsprozesse sind sehr speicherintensiv und erfordern viele Speicherzugriffe für Funktionen wie Suche und Vergleich. Zum Beispiel verwendet künstliche Computerintelligenz („KI“) Deep-Learning-Techniken, wobei ein Datenverarbeitungssystem als ein neuronales Netzwerk organisiert sein kann. Ein neuronales Netzwerk bezieht sich auf eine Mehrzahl von miteinander verbundenen Verarbeitungsknoten, die zum Beispiel die Analyse von Daten ermöglichen. Neuronale Netzwerke berechnen „Gewichte“, um eine Berechnung an neuen Eingabedaten durchzuführen. Neuronale Netzwerke verwenden mehrere Schichten von Rechenknoten, wobei tiefere Schichten Berechnungen basierend auf Ergebnissen von Berechnungen durchführen, die von höheren Schichten durchgeführt werden.
  • Maschinenlernen (ML) beinhaltet Computeralgorithmen, die sich automatisch durch Erfahrung und durch die Verwendung von Daten verbessern können. Es wird als ein Teil von künstlicher Intelligenz angesehen. Maschinenlernalgorithmen bauen ein Modell basierend auf Probedaten auf, die als „Trainingsdaten“ bekannt sind, um Vorhersagen oder Entscheidungen zu treffen, ohne explizit dafür programmiert zu sein.
  • Neuronale Netzwerke können eine Mehrzahl von miteinander verbundenen Verarbeitungsknoten beinhalten, die die Analyse von Daten ermöglichen, um eine Eingabe mit solchen „trainierten“ Daten zu vergleichen. Trainierte Daten beziehen sich auf eine rechnerische Analyse von Eigenschaften bekannter Daten, um Modelle zu entwickeln, die zum Vergleichen von Eingabedaten verwendet werden. Ein Beispiel einer Anwendung von KI und Datentraining wird in einer Objekterkennung gefunden, wobei ein System die Eigenschaften vieler (z.B. Tausende oder mehr) von Bildern analysiert, um Strukturen zu bestimmen, die verwendet werden können, um eine statistische Analyse durchzuführen, um ein Eingabeobjekt zu identifizieren.
  • Somit ist Maschinenlernen sehr rechenintensiv mit der Berechnung und dem Vergleich vieler verschiedener Datenelemente, was erhebliche Speicherzugriffe erfordert. Andere Computeranwendungen, wie Datenbankanwendungen, einschließlich Big Data, beinhalten auch viele Datenzugriffe. Bei solchen datenintensiven Operationen kann eine Datenbewegung einen Großteil von Speicherzugriffstransaktionen verbrauchen.
  • Einige Technologien adressieren Latenz, die Speicherzugriffen zugeordnet ist, indem sie den Speicher näher am Prozessor positionieren, um das System zu beschleunigen. „Near-Memory-Computing“ bewegt die Verarbeitung näher an den Speicher, was die für den Datenzugriff erforderliche Zeit verringert. Datenzugriffsaufgaben, wie Datenmigration von einem Datensatz zu einem anderen, können jedoch immer noch das Übertragen solcher Datensätze zwischen Nahspeicher und Fernspeicher erfordern. Zum Beispiel können Datenmigrationen von einem Datensatz A zu einem Datensatz B zwischen Anwendungsphasen ausgeführt werden. In solchen Beispielen haben alle übertragenen Datenwörter dedizierte Speicheranweisungen (Adresse, Befehl und Daten) übertragen. Somit werden zusätzlich zum Übertragen der Datensätze auf dem Speicherbus Adress- und Befehlsbits übertragen, was die verfügbare effektive Speicherbusbandbreite verschlechtert oder begrenzt.
  • Gemäß Aspekten der Offenbarung wird eine Speicherschnittstellenschaltung zu einem Speicher, wie Direktzugriffsspeicher (RAM), hinzugefügt, die das Umschalten des Speichers zwischen Übertragung mit fester Länge und Übertragung mit Burst mit variabler Länge ermöglicht. Für Verarbeitungsoperationen wird der Speicher in einem Nicht-Burst-Datenzugriffsmodus mit fester Länge betrieben, wobei jeder Speicherzugriffsbefehl Adresse, Speicherbefehl und Dateninformationen enthält. Für Datenübertragungs- oder Migrationsoperationen (z. B. zwischen Nah- und Fernspeicher) wird der Burst-Speicherzugriffsmodus mit variabler Länge verwendet. Im Burst-Modus kann eine Adresse an den Speicher gesendet werden, aber anstatt die Daten nur für die spezifizierte Adresse zu lesen/zu schreiben, wird auch für Lese-/Schreiboperationen auf eine bestimmte Anzahl von zusätzlichen Speicherorten (typischerweise sequentielle Adressen) zugegriffen.
  • Mit dem Burst-Speicherzugriffsmodus werden Adress- und Befehlsinformationsbits aus einigen Datenübertragungen eliminiert oder verringert, was potenziell zusätzliche Bandbreite für die Datenübertragung bereitstellt. In verschiedenen Beispielen wird die Speicherschnittstelle sowohl für Nah- als auch Fernspeicher hinzugefügt. Die Schnittstelle ist jedoch auch für verschiedene Kombinationen von Verbindungen anwendbar, z. B. Nahspeicher zu Fernspeicher, Nahspeicher zu Nahspeicher, Kern zu Kern, Chip zu Chip, Hauptspeicher zu Cache-Speicher usw.
  • 1 ist ein Blockschaubild, das Aspekte eines Computersystems 100 gemäß Aspekten der vorliegenden Offenbarung veranschaulicht. Das Computersystem 100 enthält einen Prozessor, einen ersten Speicher und einen zweiten Speicher. Zum Beispiel kann der Prozessor ein Prozessor 102 für künstliche Intelligenz (KI) sein, der dafür ausgelegt ist, eine Schnittstelle mit dem ersten Speicher 104 (z. B. Nahspeicher) und dem zweiten Speicher 106 (z. B. Fernspeicher) zu bilden. Der Prozessor 104 könnte eine beliebige Art von Verarbeitungsvorrichtung sein, die auf Daten zugreift, die in einem Speicher gespeichert sind, wie z. B. ein Mikroprozessor, ein digitaler Signalprozessor, eine anwendungsspezifische integrierte Schaltung, eine feldprogrammierbare Gate-Array usw. Für typische Verarbeitungsoperationen greift der Prozessor 102 auf den Nahspeicher 104 zu. Wie oben erörtert, befindet sich der Nahspeicher 104 nahe am Prozessor 102, was Verarbeitungsoperationen beschleunigen kann.
  • Einige Prozesse erfordern Speicherdatenmigrationen, wie z. B. das Migrieren zwischen einem ersten Datensatz A und einem zweiten Datensatz B zwischen dem Nahspeicher 104 und dem Fernspeicher 106. Mit anderen Worten wird ein Datensatz im ersten Speicher 104 mit einem anderen Datensatz im zweiten Speicher 106 über einen Datenbus 108 ausgetauscht. Wie im in 1 gezeigten Beispiel veranschaulicht, liegt die Datenmigration zwischen Nahspeicher und Fernspeicher. In anderen Beispielen könnten Datenmigrationen Hauptspeicher zu Cache-Speicher, Kernspeicher zu Kernspeicher, Chip zu Chip usw. enthalten, wie oben erwähnt, typische Datenübertragungen enthalten jeweils Senden und Empfangen von Daten-, Adress- und Befehlsbits auf dem Speicherbus 108. Gemäß offenbarten Aspekten wird jedoch für Datenübertragungs- und Migrationsoperationen zwischen dem ersten Speicher 104 und dem zweiten Speicher 106 eine Speicherschnittstellenschaltung 120 bereitgestellt, um selektiv einen Burst-Datenzugriffsmodus zu implementieren, in dem auf dem Datenbus 108 übertragene Adress- und Befehlsbits verringert oder eliminiert werden, was weitere Bandbreite zum Übertragen der Datensätze A und/oder B auf dem Datenbus 108 bereitstellt.
  • 2 veranschaulicht ein Beispiel für einen Speicher, der zur Verwendung als der erste Speicher 104 und/oder der zweite Speicher 106 geeignet ist. Im gezeigten Beispiel enthält der Speicher 104 /106 ein oder mehrere Speicherarrays 10, die eine Mehrzahl von Speicherzellen 12 oder Bitzellen enthalten. Der Speicher 104 /106 enthält auch eine Eingabe/Ausgabe-Schaltung (E/A-Schaltung) 14, die mit der Speicherschnittstelle 110 verbunden ist. Die Speicherzellen 12 und den I/O 14 können durch komplementäre Bitleitungen BL und BLB gekoppelt sein, und Daten können über die komplementären Bitleitungen BL und BLB aus den Speicherzellen 12 gelesen und in diese geschrieben werden.
  • Wie oben erwähnt, ist der Speicher 104 /106 in einigen Beispielen ein SRAM-Speicher. In solchen Beispielen sind die Speicherzellen 12 SRAM-Zellen. 3 ist ein Schaltplan, der eine beispielhafte SRAM-Speicherzelle 12 gemäß einigen Ausführungsformen veranschaulicht. Die Speicherzelle 12 enthält eine SRAM-Struktur mit sechs Transistoren (6T), ist aber nicht darauf beschränkt. In einigen Ausführungsformen können mehr oder weniger als sechs Transistoren verwendet werden, um die Speicherzelle 12 zu implementieren. Zum Beispiel kann die Speicherzelle 12 in einigen Ausführungsformen eine 4T-, 8T- oder 10T-SRAM-Struktur verwenden, und in anderen Ausführungsformen kann sie eine speicherähnliche Bitzelle oder eine Baueinheit enthalten. Die Speicherzelle 12 enthält einen ersten Inverter, der durch ein NMOS/PMOS-Transistorpaar M1 und M2 gebildet wird, einen zweiten Inverter, der durch ein NMOS/PMOS-Transistorpaar M3 und M4 gebildet wird, und Zugriffstransistoren/Pass-Gates M5 und M6. Die Transistoren M1, M3, M5 und M6 enthalten n-Typ-Metalloxid-Halbleiter-Transistoren (NMOS-Transistoren), und die Transistoren M2 und M4 enthalten p-Typ-Metalloxid-Halbleiter-Transistoren (PMOS-Transistoren).
  • Der erste und der zweite Inverter sind kreuzgekoppelt miteinander, um eine Verriegelungsschaltung für die Datenspeicherung zu bilden. Ein erster Anschluss von jedem der Transistoren M2 und M4 ist mit einer Stromversorgung VDD gekoppelt, während ein erster Anschluss von jedem der Transistoren M1 und M3 mit einer Referenzspannung VSS, zum Beispiel Masse, gekoppelt ist. Ein Gate des Pass-Gate-Transistors M6 ist mit einer Wortleitung WL gekoppelt. Ein Drain des Pass-Gate-Transistors M6 ist mit einer Bitleitung BL gekoppelt. Darüber hinaus ist ein erster Anschluss des Pass-Gate-Transistors M6 mit zweiten Anschlüssen der Transistoren M4 und M3 und auch mit Gates von M2 und M1 am Knoten Q gekoppelt. Entsprechend ist ein Gate des Pass-Gate-Transistors M5 mit der Wortleitung WL gekoppelt. Ein Drain des Pass-Gate-Transistors M5 ist mit einer komplementären Bitleitung BLB gekoppelt. Darüber hinaus ist ein erster Anschluss des Pass-Gate-Transistors M5 mit zweiten Anschlüssen der Transistoren M2 und M1 und auch mit Gates der Transistoren M4 und M3 an dem Knoten Qbar gekoppelt.
  • Die in 2 gezeigten Speicherzellen 12 sind nicht auf SRAM-Zellen beschränkt. In anderen Beispielen können die Speicherzellen 12 eine beliebige geeignete Speichertechnologie beinhalten, wie z. B. dynamische Direktzugriffsspeicher(DRAM)-Zellen, FLASH-Speicherzellen, elektrisch löschbare programmierbare Nur-Lese-Speicher(EEPROM)-Zellen, magnetoresistive Direktzugriffsspeicher(MRAM)-Zellen, resistive Direktzugriffsspeicher(RRAM)-Zellen oder andere Arten von Speicherzellen.
  • 4 ist ein Blockschaubild, das weitere Aspekte eines Beispiels für das Computersystem 100 veranschaulicht. Das veranschaulichte Beispiel enthält die Speicherschnittstellenschaltung 120 mit Ausgängen, die mit dem Speicher 104 /106 verbunden sind. Einer oder beide des ersten Speichers 104 und des zweiten Speichers 106 können die Speicherschnittstellenschaltung 120 damit gekoppelt haben. Dementsprechend werden der erste Speicher 104 und der zweite Speicher 106 hierin gemeinsam als der Speicher 104 /106 bezeichnet.
  • Die Speicherschnittstellenschaltung 120 ist dafür ausgelegt, selektiv einen Burst-Speicherzugriffsmodus oder einen Nicht-Burst-Speicherzugriffsmodus zu implementieren, wie oben erörtert. Als solches empfängt die Speicherschnittstellenschaltung 120 einen Befehl 110, der zwischen dem Burst-Speicherzugriffsmodus und dem normalen oder Nicht-Burst-Speicherzugriffsmodus wählt. Der Befehl 110 enthält ferner einen Speicheroperationsbefehl (z. B. Lesen, Schreiben, Burst-Lesen, Burst-Schreiben usw.) und einen Adressbefehl.
  • Unter anderem enthält die Speicherschnittstellenschaltung 120 einen Adressgenerator mit einem Ausgangsanschluss, der mit einem Adresseingangsanschluss des Speichers 104 /106 verbunden ist. Der Adressgenerator gibt eine erste Speicheradresse basierend auf einem Startadresssignal aus, das aus dem Adressbefehlsabschnitt des Befehls 110 decodiert wird. Der Speicher 104 /106 ist dafür ausgelegt, auf diese erste Speicheradresse zuzugreifen, und wenn er sich im Burst-Speicherzugriffsmodus befindet, danach eine zweite Speicheradresse basierend auf der ersten Speicheradresse an dem Ausgangsanschluss zu erzeugen. Als solches bestimmt die Speicherschnittstelle 120 die nächste Speicheradresse, auf die in dem Speicher 104 /106 zugegriffen wird.
  • Da die Speicherschnittstelle 120 die nächste Speicheradresse für den Burst-Speicherzugriff erzeugt und der Speicherbefehl (Lesen/Schreiben) im decodierten Befehl 110 bereitgestellt worden ist, ist es nicht erforderlich, dass diese Informationen auf dem Datenbus 108 für nachfolgende Speicherzugriffe im Burst-Speicherzugriffsmodus übertragen werden. Dies stellt zusätzliche Bandbreite für die Übertragung von Daten bereit, die aus dem Speicher 104 /106 gelesen oder in diesen geschrieben werden.
  • 5 ist ein Blockschaubild, das weitere Aspekte eines Beispiels für das Computersystem 100 veranschaulicht. Das in 5 gezeigte Beispiel umfasst weitere Aspekte des Speichers 104 /106, wie etwa einen Chip-Freigabeanschluss CE und einen Adressanschluss ADDR, einen Befehlsanschluss CMD, einen Dateneingangsanschluss DI und einen Datenausgangsanschluss DO. Im veranschaulichten Beispiel aktiviert ein logisches High-Signal (d.h. Logik 1), das am CE-Anschluss empfangen wird, den Speicher 104 /106. In anderen Beispielen aktiviert ein logisches Low-Signal (d.h. Logik o) am CE-Anschluss den Speicher 104 /106. Der ADDR-Anschluss empfängt ein Adresssignal, das einem Adressdecoder 16 bereitgestellt wird. Als Reaktion auf die am CE-Anschluss und am ADDR-Anschluss empfangenen Eingaben werden die Wortleitung WL und die Bitleitungen BL/BLB, die der/den geeigneten Speicherzelle(n) 12 des Speicherarray 10 entsprechen, für Lese- oder Schreiboperationen aktiviert. Daten, die aus der ausgewählten Speicherzelle 12 gelesen werden, werden durch das I/O 14 an den DO-Anschluss ausgegeben, und Daten, die in die am DI-Anschluss empfangene ausgewählte Speicherzelle 12 geschrieben werden sollen, werden durch das I/O 14 den geeigneten Bitleitungen BL/BLB bereitgestellt.
  • Die Schnittstellenschaltung 120 enthält einen Anforderungsdecoder 112 sowie eine Burst-Zählerschaltung 130, eine Adressgeneratorschaltung 140, eine Befehlsgeneratorschaltung 150 und eine Daten-I/O-Schaltung 160. Der Befehl 110 wird durch den Anforderungsdecoder 112 empfangen. Wie oben erwähnt, enthält der Befehl 110 ein Speicheroperationsbefehlssignal 110a und ein Adresssignal 110B. Der Anforderungsdecoder 112 decodiert den Befehl 110, um Signale für die anderen Komponenten der Schnittstellenschaltung 120 bereitzustellen. Genauer decodiert der Anforderungsdecoder 112 das Adresssignal 110B, um ein Startadresssignal 114B zu erzeugen, das durch den Adressgenerator 140 empfangen wird.
  • In dem veranschaulichten Beispiel stellt das durch den Anforderungsdecoder 112 empfangene Speicherbefehlssignal 110A die Speicheroperation, die durch den Speicher 104 /106 implementiert werden soll (d. h. Lesen oder Schreiben), sowie eine Auswahl des Burst-Speicherzugriffsmodus oder des Nicht-Burst-Speicherzugriffsmodus bereit. Zum Beispiel zeigen die Speicherbefehle Burst-Lesen und Burst-Schreiben den Burst-Speicherzugriffsmodus für die Lese- bzw. Schreibspeicheroperation an. Andererseits zeigen die Speicherbefehle Lesen und Schreiben den Nicht-Burst- oder „normalen“ Speicherzugriffsmodus für die Lese- bzw. Schreibspeicheroperation an.
  • Basierend auf der Befehlseingabe 110A gibt der Anforderungsdecoder 112 somit ein erstes Datenzählungs-(d. h. „Burst-Zähler“-) Signal 114C an die Burst-Zählerschaltung 130 aus. Wie nachstehend weiter erörtert wird, zeigt der Wert des Burst-Zählersignals 114C den Burst-Speicherzugriffsmodus oder den Nicht-Burst-Speicherzugriffsmodus an. Der Anforderungsdecoder 112 decodiert ferner den Speicheroperationsbefehl 114A aus dem Befehlseingangssignal 110A, der an die Befehlsgeneratorschaltung 150 ausgegeben wird.
  • Die Adressgeneratorschaltung 140 enthält einen Adressmultiplexer (MUX) 142, ein Adressregister 144 und eine Adressanpassungs-(d. h. Inkrement/Dekrement-)Schaltung 146, die mit einem Ausgangsanschluss des Adress-MUX 144 verbunden ist. Der Ausgangsanschluss des Adress-MUX 144 ist auch mit dem ADDR-Anschluss des Speichers 104 /106 verbunden. Die Startadresse 114B wird an einem Eingang des Adress-MUX 142 empfangen, und der zweite Eingang des Adress-MUX 142 empfängt einen Ausgang der Inkrement/Dekrement-Schaltung 146. Anfangs wird die durch den Anforderungsdecoder 112 erzeugte Startadresse 114B an den Adress-MUX 144 ausgegeben. Der Ausgang des Adress-MUX 144 (anfangs die Startadresse 114B) wird dem ADDR-Anschluss des Speichers 104 /106 bereitgestellt, und dementsprechend wird auf diese Speicheradresse zugegriffen.
  • In dem normalen oder Nicht-Burst-Speicherzugriffsmodus wird der nächste Befehl (einschließlich einer neuen Speicheradresse 110B, Speicherbefehl 110A und potenziell Daten) empfangen.
  • In dem Burst-Speicherzugriffsmodus erzeugt die Speicherschnittstellenschaltung 120 jedoch die nächste Adresse für Speicherzugriff. Dies verringert die Menge an Speicheradressinformationen, die über den Datenbus 108 übertragen werden. In einigen Ausführungsformen sind die durch die Adressschaltung 140 erzeugten nachfolgenden Speicheradressen sequentiell zu der anfänglichen Startadresse 114B. Mit anderen Worten grenzt die erzeugte zweite Speicheradresse unmittelbar an die empfangene erste oder Startadresse 114B an.
  • In einigen offenbarten Ausführungsformen enthält der Speicher 104 /106 die Speicherzellen 12, die in dem Array 10 von Zeilen und Spalten angeordnet sind, wie in 2 gezeigt. Die Startadresse 114B (und somit der erste Adressausgang, der in der Adresse MUX 144 gespeichert ist) kann eine erste Speicherzelle 12 (d. h. eine erste Spalte) einer gegebenen Zeile in dem Array 10 identifizieren. Nachdem Daten aus dieser bestimmten Speicherzelle 112 gelesen oder in diese geschrieben wurden, kann die Adressgeneratorschaltung 140 eine zweite Speicheradresse erzeugen, die der nächsten Speicherzelle 112 in dieser gegebenen Zeile entspricht.
  • Somit wird die erste Speicheradresse, die im Adressregister 144 gespeichert ist (d. h. die Startadresse 114B), an die Inkrement/Dekrement-Schaltung 146 ausgegeben, die die vom Adressregister 144 empfangene Adresse inkrementiert oder dekrementiert, wie geeignet. Wenn die Startadresse 114B einer ersten Spalte einer gegebenen Zeile des Speicherarrays 10 entspricht, wird die zweite Adresse von der Adressanpassungsschaltung 146 inkrementiert, um der Speicherzelle 12 an der zweiten Spalte der gegebenen Zeile in dem Array 10 zu entsprechen. Diese erzeugte zweite Speicheradresse wird durch den zweiten Eingang des Adress-MUX 142 empfangen, in das Adressregister 144 geschrieben und an den ADDR-Anschluss des Speichers 104 /106 ausgegeben. Die zweite Adresse wird ferner von der Adressanpassungsschaltung 146 empfangen und inkrementiert, um der dritten Spalte der gegebenen Zeile in dem Array 10 zu entsprechen, und so weiter, um die Anzahl von Speicheradressen zu erzeugen, die durch den Befehl 110A angegeben wird.
  • In anderen Beispielen wird, wenn die Startadresse 114B einer ersten Spalte einer gegebenen Zeile des Speicherarrays 10 entspricht, die erste Adresse von der Adressanpassungsschaltung 146 inkrementiert, um der Speicherzelle 12 an der zweiten Spalte der gegebenen Zeile in dem Array 10 zu entsprechen, um die zweite Speicheradresse zu erzeugen. Diese erzeugte nachfolgende Speicheradresse wird durch den zweiten Eingang des Adress-MUX 142 empfangen, in das Adressregister 144 geschrieben und an den ADDR-Anschluss des Speichers 104 /106 ausgegeben. Die zweite Adresse wird ferner von der Adressanpassungsschaltung 146 empfangen und inkrementiert, um der dritten Spalte der gegebenen Zeile in dem Array 10 zu entsprechen, und so weiter, um die Anzahl von Speicheradressen zu erzeugen, die durch den Befehl 110A angegeben wird.
  • In anderen Beispielen entspricht die Startadresse 114B einer anderen Spalte als der ersten Spalte einer gegebenen Zeile des Speicherarrays 10. Dementsprechend wird in solchen Beispielen die zweite Adresse, die entweder durch Inkrementieren oder Dekrementieren der ersten Speicheradresse durch die Adressanpassungsschaltung 146 erzeugt wird, um der Speicherzelle 12 an einer benachbarten Spalte der gegebenen Zeile in dem Array 10 zu entsprechen. Wiederum wird diese erzeugte zweite Speicheradresse durch den zweiten Eingang des Adress-MUX 142 empfangen, in das Adressregister 144 geschrieben und an den ADDR-Anschluss des Speichers 104 /106 ausgegeben. Die zweite Adresse wird ferner von der Adressanpassungsschaltung 146 empfangen und entweder inkrementiert oder dekrementiert, um der nächsten benachbarten Spalte der gegebenen Zeile in dem Array 10 zu entsprechen, und so weiter, um die Anzahl von Speicheradressen zu erzeugen, die durch den Befehl 110A angegeben wird.
  • Die Burst-Zählerschaltung 130 enthält einen Zähler-MUX 132, ein Zählerregister 134 und eine Zählanpassungs-(d. h. „Dekrement“-)Schaltung 136. Anfangs wird das Burst-Zählersignal 114B an einem Eingang des Burst-Zählereingangs MUX 132 empfangen. Im Burst-Speicherzugriffsmodus zeigt das Burst-Zählersignal 114C die Anzahl von Speicheradressen an, auf die für den Burst-Speicherzugriff basierend auf dem empfangenen Speicherbefehlssignal 110A zugegriffen werden soll. Wenn zum Beispiel ein Burst-Speicherzugriff 512 Speicheradressen enthalten soll, ist das anfängliche Burst-Zählersignal 114C, das durch den MUX 134 empfangen wird, 512. Dieser Zählerwert wird im Zählerregister 134 gespeichert und an eine Freigabeschaltung 138 ausgegeben. Die Freigabeschaltung 138 bestimmt, ob der Zähler größer als 0 ist (was anzeigt, dass Speicherzugriffsadressen verbleiben). Wenn der Zählerwert aus dem Zählerregister 134 größer als 0 ist, wird eine Logik 1 an den CE-Anschluss des Speichers 104 /106 ausgegeben. Wenn der Zählerwert 0 ist (keine Speicherzugriffsadressen verbleiben), wird eine Logik o an den CE-Anschluss des Speichers 104/106 ausgegeben, wodurch dieser deaktiviert wird. Es ist zu beachten, dass in Ausführungsformen, in denen Speicherchips mit einer aktiven Low-Chip-Freigabe eingesetzt werden, diese Werte, die an den CE-Anschluss ausgegeben werden, umgekehrt werden würden.
  • Nach dem anfänglichen Speicherzugriff (d. h. entsprechend der empfangenen Startadresse 114B) wird der im Zählerregister 134 gespeicherte anfängliche Zählerwert von der Zählanpassungsschaltung 136 empfangen, die so konfiguriert ist, dass sie den Zählwert um eins dekrementiert. Somit würde im oben erörterten Beispiel der anfängliche Zählerwert von 512 auf 511 dekrementiert und dem zweiten Eingang des MUX 132 bereitgestellt. Der dekrementierte Zählerwert wird dann in das Register 134 geschrieben, und so weiter. Somit ist die Burst-Zählerschaltung 130 dafür ausgelegt, die Datenzählung nach jedem Zugriff des Speichers 104/106 zu dekrementieren.
  • In einigen Ausführungsformen würde, wenn der normale oder Nicht-Burst-Speicherzugriffsmodus basierend auf dem empfangenen Befehl 110A gewählt wird, das durch den Anforderungsdecoder 112 ausgegebene anfängliche Burst-Zählersignal 114C 1 sein, da im Nicht-Burst-Zugriffsmodus nur auf eine Speicheradresse zugegriffen wird.
  • In anderen Beispielen kann die Zählanpassungsschaltung 136 abhängig von der bestimmten Implementierung anders arbeiten. Wie zuvor angemerkt, zeigt im Burst-Speicherzugriffsmodus das Burst-Zählersignal 114C die Anzahl von Speicheradressen an, auf die für den Burst-Speicherzugriff basierend auf dem empfangenen Speicherbefehlssignal 110A zugegriffen werden soll. In alternativen Ausführungsformen könnte das durch den MUX 134 empfangene anfängliche Burst-Zählersignal 114C zum Beispiel 0 sein. Dieser Zählerwert wird im Zählerregister 134 gespeichert und an die Freigabeschaltung 138 ausgegeben. Die Freigabeschaltung 138 würde dann bestimmen, ob der Zähler kleiner als die vorbestimmte Anzahl von Speicheradressen ist, auf die in der Burst-Übertragung zugegriffen werden soll. Wenn der Burst-Speicherzugriff 512 Speicheradressen enthalten soll, würde das Zählerregister 134 anfänglich einen o-Wert speichern und die Zählanpassungsschaltung 136 würde hochzählen (d. h. jede Iteration 1 addieren), bis die Freigabeschaltung 138 bestimmt, dass der Zählwert die vorbestimmte Grenze (d. h. 512) erreicht hat. Mit anderen Worten wird in einer solchen Ausführungsform, wenn der Zählerwert aus dem Zählerregister 134 kleiner als 512 ist, eine Logik 1 an den CE-Anschluss des Speichers 104 /106 ausgegeben. Wenn der Zählerwert 512 erreicht (keine Speicherzugriffsadressen verbleiben), wird eine Logik o an den CE-Anschluss des Speichers 104/106 ausgegeben, wodurch dieser deaktiviert wird. Es ist zu beachten, dass in Ausführungsformen, in denen Speicherchips mit einer aktiven Low-Chip-Freigabe eingesetzt werden, diese Werte, die an den CE-Anschluss ausgegeben werden, umgekehrt werden würden.
  • Die in 5 gezeigte Befehlsgeneratorschaltung 150 enthält ein Befehlsregister 152, das den Speicheroperationsbefehl 114A empfängt, der durch den Anforderungsdecoder 112 ausgegeben wird. Im veranschaulichten Beispiel enthalten die Speicherbefehle, die dem CMD-Anschluss des Speichers 104 /106 bereitgestellt werden, Lesefreigabe(RE)- und Schreibfreigabe(WE)-Befehle. Im Burst-Speicherzugriffsmodus ist die Speicheroperation (Lesen oder Schreiben) für jeden Speicheradressenzugriff gleich. Als solche müssen Speicherbefehlsinformationen nicht für jeden Speicherzugriff auf dem Datenbus 108 übertragen werden. Dies stellt effektiv zusätzliche Bandbreite zum Übertragen von Daten auf dem Datenbus 108 bereit.
  • Die Daten-I/O-Schaltung 160 enthält ein Daten-in-Register 162 und ein Daten-aus-Register 164. Die Daten im Register 162 empfangen Daten auf dem Datenbus 108 und sind mit dem DI-Anschluss des Speichers 116 verbunden, um Daten bereitzustellen, die in den Speicher 104 /106 geschrieben werden sollen. Das Daten-aus-Register 164 empfängt Daten vom DO-Anschluss des Speichers 104 /106, um daraus gelesene Daten zu speichern, und gibt diese Daten an den Datenbus 108 aus. Daten, die im Daten-aus-Register 164 gespeichert sind, können über den Datenbus 108 an einen anderen Speicher übertragen werden, wie z. B. vom Fernspeicher 106 zum Nahspeicher 104 oder umgekehrt. Daten, die in dem Daten-in-Register 162 gespeichert sind, können über den Datenbus 108 von einem anderen Speicher empfangen werden, wie z. B. vom Fernspeicher 106 zum Nahspeicher 104 oder umgekehrt.
  • 6 ist ein Flussdiagramm, das ein Beispiel für ein Verfahren 200 gemäß Aspekten der Offenbarung veranschaulicht. Das Verfahren 200 kann unter Verwendung von Aspekten des oben erörterten und in 1-5 gezeigten Computersystems 100 implementiert werden. Bei Block 210 wird ein Befehlssignal 114A empfangen, wie z. B. durch die Befehlsgeneratorschaltung 150. Basierend auf dem empfangenen Befehlssignal 100 wird bei Block 212 einer von einem Burst-Speicherzugriffsmodus oder einem Nicht-Burst-Speicherzugriffsmodus bestimmt. Wie oben in Bezug auf die in 5 veranschaulichte Ausführungsform erörtert, kann der Burst-Speicherzugriffsmodus basierend auf dem durch die Burst-Zählerschaltung 130 empfangenen anfänglichen Burst-Zählerwert 114C, welcher größer als 1 ist, angezeigt werden. Wenn der anfängliche Burst-Zählerwert 114C 1 ist, wird nur ein einzelner Speicherzugriff angezeigt, mit anderen Worten wird der normale oder Nicht-Burst-Speicherzugriffsmodus ausgewählt.
  • Bei Block 214 wird ein Startadresssignal 114B empfangen, wie z. B. durch die Adressgeneratorschaltung 140. Das Startadresssignal zeigt die anfängliche Speicheradresse an, auf die zum Beispiel für eine Lese- oder Schreiboperation zugegriffen werden soll. Eine erste Adresse basierend auf dem Startadresssignal 114C wird bei Block 260 an einen Adressanschluss ADDR des Speichers 104/106 ausgegeben. In einigen Beispielen wird die erste Adresse im Adressregister 144 gespeichert, dessen Ausgang mit dem ADDR-Anschluss der Speichernummer 104 /106 verbunden ist.
  • Auf die erste Adresse wird in Block 218 zugegriffen, um Daten, die von einem Datenbus 108 empfangen werden, zu schreiben oder Daten basierend auf dem Befehlssignal 114A an den Datenbus 108 zu lesen. Nach diesem Speicherzugriff wird eine zweite Adresse basierend auf der ersten Adresse an den Adressanschluss ADDR des Speichers 104 /106 in Block 222 ausgegeben, wenn bestimmt wird, dass der Burst-Speicherzugriffsmodus in Entscheidungsblock 220 ausgewählt ist. Die zweite Adresse kann durch Inkrementieren oder Dekrementieren der ersten Adresse bestimmt werden.
  • Wie oben angemerkt, wird, wenn der Burst-Speicherzugriffsmodus nicht ausgewählt ist, nur ein Speicherzugriff basierend auf der empfangenen Startadresse ausgeführt. Dementsprechend kehrt, wenn bestimmt wird, dass der Burst-Speicherzugriffsmodus in Entscheidungsblock 220 nicht ausgewählt ist, der Prozess zu Block 210 zurück und ein weiterer Befehl wird empfangen.
  • Das Verfahren kann ferner das Ausgeben eines ersten Datenzählsignals basierend auf dem Befehlssignal an den CE-Anschluss des Speichers 104 /106 umfassen. Wenn der Burst-Speicherzugriffsmodus ausgewählt ist, wird ein zweites Datenzählsignal basierend auf dem ersten Datenzählsignal bestimmt, wie etwa durch Dekrementieren der ersten Datenzählung. Dieses zweite Datenzählsignal wird dann nach dem Zugreifen auf die erste Speicheradresse an den CE-Anschluss des Speichers 104 /106 ausgegeben. Dies wird fortgesetzt, bis das Datenzählsignal o erreicht, was anzeigt, dass keine Speicheradressen mehr für den Burst-Speicherzugriffsmodus erzeugt werden sollen.
  • Dementsprechend ermöglichen offenbarte Beispiele, dass ein Speicher zwischen einem Burst-Übertragungsmodus mit variabler Länge und einem „normalen“ oder Nicht-Burst-Übertragungsmodus mit fester Länge umgeschaltet wird. Im Burst-Modus werden Adress- und Befehlsinformationsbits aus einigen Datenübertragungen eliminiert oder verringert, was potenziell zusätzliche Bandbreite für die Datenübertragung bereitstellt. Dies verbessert wiederum die Leistung für intensive Datenübertragungsoperationen, wie z. B. das Migrieren von einem Datensatz zu einem anderen. In verschiedenen Beispielen wird die Speicherschnittstelle sowohl für Nahals auch Fernspeicher hinzugefügt. Die Schnittstelle ist jedoch auch für verschiedene Kombinationen von Verbindungen anwendbar, z. B. Nahspeicher zu Fernspeicher, Nahspeicher zu Nahspeicher, Kern zu Kern, Chip zu Chip, Hauptspeicher zu Cache-Speicher usw.
  • Offenbarte Ausführungsformen stellen somit eine Speicherschnittstellenschaltung bereit, die einen Anforderungsdecoder enthält, der dafür ausgelegt ist, ein Befehlssignal und ein Adresssignal zu empfangen. Der Anforderungsdecoder ist dafür ausgelegt, das Befehlssignal und das Adresssignal zu decodieren, um ein Datenzählsignal und ein Startadresssignal zu erzeugen. Ein Burst-Zähler ist mit dem Anforderungsdecoder gekoppelt, und der Burst-Zähler ist dafür ausgelegt, das Datenzählsignal nach jedem Zugriff eines Speichers zu aktualisieren. Ein Adressgenerator ist mit dem Anforderungsdecoder gekoppelt. Der Adressgenerator ist dafür ausgelegt, das Startadresssignal zu empfangen und ein nachfolgendes Speicheradresssignal basierend auf dem Startadresssignal nach jedem Zugriff des Speichers zu erzeugen.
  • Gemäß weiteren Aspekten enthält eine Speichervorrichtung einen Speicher mit einer Mehrzahl von Speicherzellen, die in Zeilen und Spalten angeordnet sind. Der Speicher weist einen Adresseingangsanschluss, einen Dateneingangsanschluss und einen Datenausgangsanschluss auf. Ein Datenbus ist mit dem Dateneingangsanschluss und dem Datenausgangsanschluss verbunden. Der Datenbus ist dafür ausgelegt, Daten bereitzustellen, die in den Speicher geschrieben werden sollen, und Daten zu empfangen, die aus dem Speicher gelesen werden. Eine Speicherschnittstellenschaltung ist dafür ausgelegt, selektiv einen Burst-Speicherzugriffsmodus oder einen Nicht-Burst-Speicherzugriffsmodus zu implementieren. Die Speicherschnittstellenschaltung enthält einen Adressgenerator, der einen Ausgangsanschluss aufweist, der mit dem Adresseingangsanschluss des Speichers verbunden ist. Der Adressgenerator ist dafür ausgelegt, ein Startadresssignal zu empfangen und eine Speicheradresse basierend auf dem Startadresssignal am Ausgangsanschluss zu erzeugen. Der Speicher ist dafür ausgelegt, auf die Speicheradresse zuzugreifen, und danach ist der Adressgenerator dafür ausgelegt, eine zweite Speicheradresse basierend auf der Speicheradresse am Ausgangsanschluss zu erzeugen.
  • Gemäß noch weiteren offenbarten Aspekten enthält ein Speicherschnittstellen-Verfahren das Empfangen eines Befehlssignals und das Bestimmen eines von einem Burst-Speicherzugriffsmodus oder einem Nicht-Burst-Speicherzugriffsmodus. Ein Startadresssignal wird empfangen, und eine erste Adresse basierend auf dem Startadresssignal wird an einen Adressanschluss des Speichers ausgegeben. Auf die erste Adresse wird zugegriffen, um Daten, die von einem Datenbus empfangen werden, zu schreiben oder Daten basierend auf dem Befehlssignal an den Datenbus zu lesen. Danach wird, wenn der Burst-Speicherzugriffsmodus ausgewählt ist, eine zweite Adresse basierend auf der ersten Adresse an den Adressanschluss des Speichers ausgegeben.
  • Diese Offenbarung umreißt verschiedene Ausführungsformen, so dass der Fachmann die Aspekte der vorliegenden Offenbarung besser verstehen kann. Dem Fachmann sollte klar sein, dass er die vorliegende Offenbarung ohne weiteres als Basis für das Entwerfen oder Modifizieren anderer Prozesse und Strukturen verwenden kann, um die gleichen Zwecke und/oder die gleichen Vorteile wie bei den im vorliegenden Text vorgestellten Ausführungsformen zu erreichen. Dem Fachmann sollte auch klar sein, dass solche äquivalenten Bauformen nicht das Wesen und den Schutzumfang der vorliegenden Offenbarung verlassen, und dass er verschiedene Änderungen, Substituierungen und Modifizierungen an der vorliegenden Erfindung vornehmen kann, ohne vom Wesen und Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • 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
    • US 63/298833 [0001]

Claims (20)

  1. Speicherschnittstellenschaltung, aufweisend: einen Anforderungsdecoder, der dafür eingerichtet ist, ein Befehlssignal und ein Adresssignal zu empfangen, wobei der Anforderungsdecoder dafür eingerichtet ist, das Befehlssignal und das Adresssignal zu decodieren, um ein Datenzählsignal und ein Startadresssignal zu erzeugen; einen Burst-Zähler, der mit dem Anforderungsdecoder gekoppelt ist, wobei der Burst-Zähler dafür eingerichtet ist, das Datenzählsignal nach jedem Zugriff eines Speichers zu aktualisieren; und einen Adressgenerator, der mit dem Anforderungsdecoder gekoppelt ist, wobei der Adressgenerator dafür eingerichtet ist, das Startadresssignal zu empfangen und ein nachfolgendes Speicheradresssignal basierend auf dem Startadresssignal nach jedem Zugriff des Speichers zu erzeugen.
  2. Speicherschnittstellenschaltung nach Anspruch 1, ferner aufweisend einen Befehlsgenerator, der mit dem Anforderungsdecoder gekoppelt ist, wobei der Befehlsgenerator dafür eingerichtet ist, einen Speicherbefehl basierend auf dem Befehlssignal zu erzeugen.
  3. Speicherschnittstellenschaltung nach Anspruch 2, wobei der Speicherbefehl mindestens einen von einem Lesefreigabebefehl oder einem Schreibfreigabebefehl enthält.
  4. Speicherschnittstellenschaltung nach Anspruch 2 oder 3, ferner aufweisend einen Datenbus, der mit dem Anforderungsdecoder gekoppelt ist, wobei der Datenbus dafür eingerichtet ist, selektiv Daten, die aus dem Speicher empfangen werden, und/oder Eingabedaten an den Speicher basierend auf dem Speicherbefehl auszugeben.
  5. Speicherschnittstellenschaltung nach einem der vorhergehenden Ansprüche, wobei der Burst-Zähler dafür eingerichtet ist, das Datenzählsignal nach jedem Zugriff des Speichers zu dekrementieren.
  6. Speicherschnittstellenschaltung nach einem der vorhergehenden Ansprüche, wobei die Speicherschnittstellenschaltung für einen Burst-Speicherzugriff eingerichtet ist.
  7. Speicherschnittstellenschaltung nach Anspruch 6, wobei der Burst-Speicherzugriff eine Mehrzahl von sequentiellen Speicheradressen enthält.
  8. Speicherschnittstellenschaltung nach Anspruch 6 oder 7, wobei das Startadresssignal einer ersten Speicheradresse entspricht und wobei das nachfolgende Speicheradresssignal einer zweiten Speicheradresse entspricht.
  9. Speicherschnittstellenschaltung nach einem der Ansprüche 6 bis 8, wobei der Adressgenerator dafür eingerichtet ist, das nachfolgende Speicheradresssignal durch Inkrementieren oder Dekrementieren des Startadresssignals zu erzeugen.
  10. Speicher-Vorrichtung, aufweisend: einen ersten Speicher, der eine Mehrzahl von Speicherzellen enthält, die in Zeilen und Spalten angeordnet sind, wobei der erste Speicher einen Adresseingangsanschluss, einen Dateneingangsanschluss und einen Datenausgangsanschluss aufweist; einen Datenbus, der mit dem Dateneingangsanschluss und dem Datenausgangsanschluss verbunden ist, wobei der Datenbus dafür eingerichtet ist, Daten bereitzustellen, die in den ersten Speicher geschrieben werden sollen, und Daten zu empfangen, die aus dem ersten Speicher gelesen werden; eine Speicherschnittstellenschaltung, die dafür eingerichtet ist, selektiv einen Burst-Speicherzugriffsmodus oder einen Nicht-Burst-Speicherzugriffsmodus zu implementieren, wobei die Speicherschnittstellenschaltung einen Adressgenerator mit einem Ausgangsanschluss enthält, der mit dem Adresseingangsanschluss des ersten Speichers verbunden ist, wobei der Adressgenerator dazu eingerichtet ist, ein Startadresssignal zu empfangen und eine erste Speicheradresse basierend auf dem Startadresssignal an dem Ausgangsanschluss zu erzeugen; und wobei der erste Speicher dafür eingerichtet ist, auf die erste Speicheradresse zuzugreifen; und danach ist der Adressgenerator dafür eingerichtet, eine zweite Speicheradresse basierend auf der ersten Speicheradresse an dem Ausgangsanschluss zu erzeugen.
  11. Speichervorrichtung nach Anspruch 10, wobei der Adressgenerator dafür eingerichtet ist, die zweite Speicheradresse nur in dem Burst-Speicherzugriffsmodus zu erzeugen.
  12. Speichervorrichtung nach Anspruch 10 oder 11, wobei die erste Speicheradresse und die zweite Speicheradresse sequentiell sind.
  13. Speichervorrichtung nach einem der Ansprüche 10 bis 12, ferner aufweisend einen zweiten Speicher, wobei der Datenbus zwischen dem ersten Speicher und dem zweiten Speicher verbunden ist.
  14. Speichervorrichtung nach einem der Ansprüche 10 bis 13, wobei die Speicherschnittstellenschaltung einen Anforderungsdecoder enthält, der dafür eingerichtet ist, ein Adresssignal zu empfangen, wobei der Anforderungsdecoder dafür eingerichtet ist, das Adresssignal zu decodieren und das Startadresssignal an den Adressgenerator auszugeben.
  15. Speichervorrichtung nach einem der Ansprüche 10 bis 14, wobei der Anforderungsdecoder dafür eingerichtet ist, ein Befehlssignal zu empfangen und ein erstes Datenzählsignal basierend auf dem Befehlssignal zu erzeugen, wobei ein Burst-Zähler dafür eingerichtet ist, ein zweites Datenzählsignal basierend auf dem ersten Datenzählsignal nach dem Zugriff der ersten Speicheradresse zu erzeugen, und wobei das erste Datenzählsignal und das zweite Datenzählsignal an einen Chipfreigabeeingang des ersten Speichers ausgegeben werden.
  16. Speichervorrichtung nach Anspruch 15, wobei das erste Datenzählsignal in dem Burst-Speicherzugriffsmodus größer als 1 ist.
  17. Verfahren, umfassend: Empfangen eines Befehlssignals; Bestimmen eines von einem Burst-Speicherzugriffsmodus oder einem Nicht-Burst-Speicherzugriffsmodus; Empfangen eines Startadresssignals; Ausgeben einer ersten Adresse basierend auf dem Startadresssignal an einen Adressanschluss eines Speichers; Zugreifen auf die erste Adresse, um Daten, die von einem Datenbus empfangen werden, zu schreiben oder Daten basierend auf dem Befehlssignal an den Datenbus zu lesen; und danach, wenn der Burst-Speicherzugriffsmodus ausgewählt ist, Ausgeben einer zweiten Adresse basierend auf der ersten Adresse an den Adressanschluss des Speichers.
  18. Verfahren nach Anspruch 17, ferner umfassend: Ausgeben eines ersten Datenzählsignals basierend auf dem Befehlssignal an einen Freigabeanschluss des Speichers; und wenn der Burst-Speicherzugriffsmodus ausgewählt ist, Ausgeben eines zweiten Datenzählsignals basierend auf dem ersten Datenzählsignal an den Freigabeanschluss des Speichers nach dem Zugreifen auf die erste Adresse.
  19. Verfahren nach Anspruch 17 oder 18, wobei das Ausgeben der zweiten Adresse basierend auf der ersten Adresse an den Adressanschluss des Speichers das Inkrementieren oder Dekrementieren der ersten Adresse enthält.
  20. Verfahren nach einem der Ansprüche 17 bis 19, wobei, wenn der Nicht-Burst-Speicherzugriffsmodus ausgewählt ist, die zweite Adresse basierend auf der ersten Adresse nicht an den Adressanschluss des Speichers ausgegeben wird.
DE102022109998.9A 2022-01-12 2022-04-26 Speicherschnittstelle Pending DE102022109998A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263298833P 2022-01-12 2022-01-12
US63/298,833 2022-01-12
US17/724,182 2022-04-19
US17/724,182 US20230221892A1 (en) 2022-01-12 2022-04-19 Memory interface

Publications (1)

Publication Number Publication Date
DE102022109998A1 true DE102022109998A1 (de) 2023-07-13

Family

ID=86264384

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022109998.9A Pending DE102022109998A1 (de) 2022-01-12 2022-04-26 Speicherschnittstelle

Country Status (4)

Country Link
US (1) US20230221892A1 (de)
KR (1) KR20230109062A (de)
CN (1) CN116107933A (de)
DE (1) DE102022109998A1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0803816A2 (de) 1996-04-24 1997-10-29 Cirrus Logic, Inc. Speicheranordnung mit multiplexiertem Ein-/Ausgangstor und mit Speicherabbildungsfähigkeit und System und Verfahren, die diese verwenden
US5826106A (en) 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
US20010044875A1 (en) 1996-01-11 2001-11-22 Jeffrey S. Mailloux Method for switching between modes of operation
US20100153611A1 (en) 2008-12-16 2010-06-17 Dialogic Corporation System and method for high performance synchronous dram memory controller

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826106A (en) 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
US20010044875A1 (en) 1996-01-11 2001-11-22 Jeffrey S. Mailloux Method for switching between modes of operation
EP0803816A2 (de) 1996-04-24 1997-10-29 Cirrus Logic, Inc. Speicheranordnung mit multiplexiertem Ein-/Ausgangstor und mit Speicherabbildungsfähigkeit und System und Verfahren, die diese verwenden
US20100153611A1 (en) 2008-12-16 2010-06-17 Dialogic Corporation System and method for high performance synchronous dram memory controller

Also Published As

Publication number Publication date
TW202328897A (zh) 2023-07-16
KR20230109062A (ko) 2023-07-19
US20230221892A1 (en) 2023-07-13
CN116107933A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
EP0908893B1 (de) Speicherarchitektur mit Mehrebenenhierarchie
DE102016209540B4 (de) Boost-steuerung zur verbesserung eines sram-schreibvorgangs
DE112006004002B4 (de) NBTI-resistente Speicherzellen mit Nand-Gliedern
DE4127549A1 (de) Festwertspeicher zum speichern von mehrfachdaten
DE102016001224A1 (de) Speicher mit hoher Bandbreite und störungsfreies differenzielles XOR
DE102019118782A1 (de) SRAM-Speicher
DE102005012099A1 (de) Inhaltsadressierbare Speicherzelle und zugehöriges Speicherzellenfeld
DE10053700B4 (de) Halbleiterspeicherbauelement mit Datenleitungspaaren
DE102018131112A1 (de) Speicherschaltung und Betriebsverfahren
DE102019100477A1 (de) Sram-speicher
DE102020120212A1 (de) Netzwerk zur automatischen Programmierspannungsauswahl
DE102013217051A1 (de) Speicherzelle und Speicher
DE102016125404A1 (de) Dual-rail-speicher, speichermakro und zugehöriges hybrides stromversorgungsverfahren
DE102019128598A1 (de) Verfahren und system zum ausgleichen von ground-bounce
DE4041408C2 (de)
DE69835116T2 (de) Inhaltaddressierter Speicher
DE202012103007U1 (de) Leseverstärker mit Offsetstrom-Einspeisung
DE102020120211A1 (de) Polarer neuronaler Netzwerk-Decodierer für Speichervorrichtungen
DE4302754C1 (de) Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb
DE69914142T2 (de) Halbleiteranordnung mit einer speicherzelle
DE102022109998A1 (de) Speicherschnittstelle
DE10226102A1 (de) Halbleiterspeicher mit verbesserter Softerror-Widerstandsfähigkeit
DE10217290A1 (de) Verfahren zum Schreiben in einen RAM mit Spaltenlöschung
DE69921708T2 (de) Interaktives Verfahren zum selbstjustierten Zugriff auf eingebauten Makro-DRAM-Speicher
DE10211957B4 (de) Ternäre inhaltsadressierbare Speicherzelle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication