-
HINTERGRUND
-
Gebiet:
-
Der hierin offenbarte Gegenstand bezieht sich auf Lese- und Schreibprozesse einer Speichervorrichtung.
-
Information:
-
Speichervorrichtungen werden in vielen Typen von elektronischen Vorrichtungen verwendet, wie Computern, Mobiltelefonen, PDAs, Datenloggern und Navigationsausrüstungen, um nur einige Beispiele zu nennen. Unter solchen elektronischen Vorrichtungen können verschiedene Typen von nicht-flüchtigen Speichervorrichtungen verwendet werden, wie NAND- oder NOR-Flash-Speicher, SRAM, DRAM und Phasenwechselspeicher, um nur einige Beispiele zu nennen. Im Allgemeinen können Schreib- oder Programmierprozesse benutzt werden, um Informationen in solchen Speichervorrichtungen zu speichern, während ein Leseprozess benutzt werden kann, um gespeicherte Informationen abzurufen.
-
Einige Typen von Speichervorrichtungen umfassen ein Speicherzellenfeld, welches in Gruppen von Speicherzellen partitioniert ist, wie Sektoren, Partitionen, usw. In solchen Fällen können Speicherzellen innerhalb solch einer Gruppe gemeinsame elektronische Schaltungen, die z. B. Erfassungsverstärker und Zeilen-/Spaltendecoder umfassen, teilen. Dementsprechend kann sowohl das Lesen von wie auch das Schreiben in solch eine Gruppe von Speicherzellen einige gemeinsame elektronische Schaltungen umfassen. In solch einem Fall kann eine ausstehende Schreiboperation, welche in einem Abschnitt solch einer Gruppe von Speicherzellen auftritt, eine Leseoperation daran hindern, in einem anderen Abschnitt der gleichen Gruppe von Speicherzellen aufzutreten. Solch eine limitierende Bedingung kann zu langsameren Leseoperationen und insgesamt zu reduzierter Leistungsfähigkeit einer Speichervorrichtung führen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Nicht-einschränkende und nicht-erschöpfende Ausführungsformen werden mit Referenz auf die folgenden Zeichnungen beschrieben, wobei sich gleiche Bezugszeichen auf gleiche Teile, über die verschiedenen Zeichnungen hinweg, beziehen, sofern nicht anders spezifiziert.
-
1–2 sind schematische Diagramme eines Abschnitts eines Speichers gemäß einer Ausführungsform.
-
3–5 sind Zeitdiagramme eines Prozesses für das Lesen von einer Partition des Speichers gemäß einer Ausführungsform.
-
6 ist ein Flussdiagramm eines Prozesses zum Lesen von einer Partition des Speichers gemäß einer Ausführungsform.
-
7 ist ein schematisches Diagramm, welches eine beispielhafte Ausführungsform eines Rechnersystems darstellt.
-
8 ist ein Blockdiagramm eines seriellen Schnittstellenspeichers gemäß einer Ausführungsform.
-
DETAILLIERTE BESCHREIUNG
-
Der in dieser Beschreibung durchgehend gemachte Bezug auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, Struktur oder Eigenschaft, welche/s in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform des beanspruchten Gegenstands umfasst wird. Wenn daher der Ausdruck „in einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass diese sich alle auf dieselbe Ausführungsform beziehen. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
-
In einer Ausführungsform kann eine Speichervorrichtung, welche z. B. eine Phasenwechselspeicher(PCM)-Vorrichtung umfassen kann, ein Speicherfeld umfassen, welches in Gruppen von Speicherzellen, Partitionen genannt, partitioniert ist. Solch eine Speichervorrichtung kann einen seriellen Schnittstellenspeicher umfassen. Beispiele von Anwendungen eines seriellen Schnittstellenspeichers können Drucker, Multimediakarten, DVD-Spieler, Set-Top-Boxen, Digitalkameras, Festplattenlaufwerke (HDDs), Automotiv-Anwendungen, Mobiltelefone usw. umfassen. Solch ein serieller Schnittstellenspeicher ist nicht zu verwechseln mit einem generischen seriellen Speicher, welcher z. B. Magnetband umfassen kann. Speicherzellen innerhalb von Partitionen können gemeinsame elektronische Schaltungen teilen, welche z. B. Erfassungsverstärker und Zeilen-/Spaltendecoder umfassen. In einer Implementierung kann solch eine Speichervorrichtung einen Mikrocontroller zum Ausführen einer Operation zum Lesen von einer bestimmten Partition umfassen, während eine Schreiboperation in der gleichen bestimmten Partition eines Speicherfeldes stattfindet. Durch solch einen Mikrocontroller ausgeführte Techniken können das serielle Empfangen eines Lesebefehls umfassen, welcher z. B. einen Befehlscode und eine Adresse umfasst. Solch eine Adresse kann empfangen werden beginnend mit einem Most Significant Bit (MSB) dieser Adresse und endend mit dem Least Significant Bit (LSB). Abhängig von einer bestimmten Implementierung können einige MSBs dieser Adresse ausreichende Informationen umfassen, um festzustellen, welche Partition den Speicherort umfasst, auf welchen der Lesebefehl gerichtet ist. Dementsprechend kann, nach seriellem Empfangen einiger MSBs der Adresse, der Mikrocontroller feststellen, ob eine Schreiboperation in der gleichen bestimmten Partition auftritt. Wenn festgestellt wird, dass eine Schreiboperation nicht in der gleichen Partition auftritt, dann kann der Mikrocontroller sofort die Leseoperation ausführen. Wenn jedoch eine Schreiboperation auftritt, dann kann der Mikrocontroller erst mit dem Unterbrechen der Schreiboperation beginnen, bevor er mit der Leseoperation beginnt. Zu einer späteren Zeit kann der Mikrocontroller die Schreiboperation fortsetzen, nachdem die Leseoperation beendet wurde. In einer Implementierung kann der Mikrocontroller solch eine Unterbrechung der Schreiboperation ausführen, während er das serielle Empfangen eines verbleibenden Abschnitts (z. B. LSBs) der Adresse des Lesebefehls fortsetzt. Dementsprechend können, wie detailliert weiter unten beschrieben, das Empfangen eines Lesebefehls und das Unterbrechen einer Schreiboperation gleichzeitig ausgeführt werden. Obwohl die hierin beschriebenen Ausführungsformen einen Mikrocontroller als Ausführer von verschiedenen Aufgaben oder Operationen rezitieren, ist der beanspruchte Gegenstand als nicht beschränkt auf solch einen Mikrocontroller zu verstehen und so zu verstehen, dass andere Schaltungen und/oder Software solche Aufgaben oder Operationen ausführen können.
-
In einer Ausführungsform kann ein Mikrocontroller, wie oben beschrieben, zum Ausführen von Techniken zum Lesen einer Speicherpartition durch Unterbrechen einer Schreiboperation intern innerhalb einer Speichervorrichtung positioniert sein, obwohl der beanspruchte Gegenstand nicht in dieser Weise beschränkt ist. Z. B. kann ein Rechnersystem einen Prozessor zum Ausführen von Anwendungen, eine Speichervorrichtung und eine Speichersteuereinheit, welche zwischen dem Prozessor und der Speichervorrichtung angeschlossen ist, umfassen. Solch ein Prozessor kann z. B. als Antwort auf die Ausführung einer Anwendung einen Lesebefehl zum Lesen von einer bestimmten Position in der Speichervorrichtung initiieren. Als Antwort auf das Empfangen solch eines Lesebefehls kann die Speichersteuereinheit eine Leseoperation durch das Erzeugen eines Lesebefehls für die Speichervorrichtung und das serielle Bereitstellen des Lesebefehls an die Speichervorrichtung ausführen. In solch einem Fall müssen der Prozessor und/oder die Speichersteuereinheit nicht darauf achten, ob eine in der Speichervorrichtung auftretende Schreiboperation mit einer Leseoperation in Konflikt stehen kann (z. B. innerhalb einer gleichen Partition der Speichervorrichtung). Stattdessen kann ein in die Speichervorrichtung eingebauter Mikrocontroller eine Anzahl von Prozessen ausführen, um der Leseoperation zu erlauben, ohne mit der Schreiboperation in Konflikt zu stehen, fortzufahren. Dementsprechend müssen ein Mikrocontroller und/oder ein Prozessor nicht die Last haben, Schreibprozesse innerhalb einer Speichervorrichtung zu überwachen, um Lese-Schreib-Konflikte zu verhindern.
-
Wie oben erwähnt, kann ein Prozessor eine oder mehrere Anwendungen ausführen, was zu Operationen zum Lesen von einer Speichervorrichtung oder zum Schreiben in eine Speichervorrichtung führt. In einer Ausführungsform jedoch kann irgendeine Schreiboperation durch einen Mikrocontroller während irgendeinem von einer Anzahl interner Speicherprozesse initiiert werden. Z. B. kann ein Mikrocontroller Schreiboperationen in einer oder mehreren Partitionen eines Speicherfeldes initiieren, um Verschleißausgleich, Speicherbereinigung, Bad-Block-Management und/oder Aktualisierungsprozesse auszuführen. Solche Prozesse können z. B. Hintergrundoperationen, welche nicht sichtbar für einen Prozessor und/oder Benutzer auf einer Anwendungsebene sind, umfassen. Hierin beschriebene Ausführungsformen können es solchen Schreiboperationen erlauben, aufzutreten, ohne eine Notwendigkeit für eine Speichersteuereinheit und/oder Prozessor, solche internen Speicherprozesse zu suspendieren.
-
1 ist ein schematisches Diagramm eines Abschnitts 100 eines Speichers gemäß einer Ausführungsform. Z. B. kann solch ein Speicher PCM umfassen, welches in Datenpartitionen von Speicherzellen organisiert sein kann. In folgenden Beschreibungen kann solch ein Speicherabschnitt beschrieben werden als acht Datenpartitionen umfassend. Solch eine bestimmte Anzahl von Datenpartitionen ist lediglich um der Zweckmäßigkeit willen beschrieben und um die Erklärung und das Verständnis zu vereinfachen. Jedoch ist es so zu verstehen, dass die Anzahl von Datenpartitionen, welche in hier beschriebenen Ausführungsformen umfasst ist, nicht beschränkt ist auf eine bestimmte Anzahl, und der beanspruchte Gegenstand in dieser Weise nicht beschränkt ist. Fortsetzend mit der Beschreibung der 1 kann der Speicherabschnitt 100 eine Anzahl (z. B. acht) von Datenpartitionen 110 umfassen. In einer Implementierung können solche Datenpartitionen das Speicherzellenfeld 116, den Zeilendecoder 113, den Spaltendecoder 136, Programmierlader (PL) 133 (z. B. benutzt während Schreiboperationen, um Speicherzellen festzustellen, welche beschrieben werden), einen oder mehrere Erfassungsverstärker 130, und andere Schaltungen 120, welche z. B. in Lese-/Schreiboperationen der assoziierten Datenpartitionen involviert sind, umfassen.
-
In einer Implementierung kann eine Leseoperation zum direkten Lesen von einer Datenpartition gleichzeitig mit einer Schreiboperation zum Schreiben auf eine andere Datenpartition auftreten. In so einem Fall muss es zu keiner Auseinandersetzung oder zu keinem Konflikt kommen, weil inmitten einer Anzahl von Gründen solche Datenpartitionen z. B. ihre eigenen Leseschaltungen (z. B. Erfassungsverstärker) und/oder Zeilen- und Spaltendekodierschaltungen umfassen können. So kann für ein bestimmtes Beispiel die Leseoperation 140 zum direkten Lesen von der Datenpartition 1 gleichzeitig mit der Schreiboperation 160 zum Schreiben in die Datenpartition 6 auftreten. Die Leseoperation 140 kann z. B. einen Prozess 145 des Messens der Zustände der Lesespeicherzellen in Datenpartition 1 über die Erfassungsverstärker 130 und das Schreiben der Daten, welche repräsentativ für die Zustände sind, in einen Ausgabepuffer 150 umfassen.
-
2 ist ein schematisches Diagramm des Abschnitts 100 des Speichers gemäß einer anderen Ausführungsform. Wie oben erwähnt, kann eine Leseoperation zum direkten Lesen von einer Datenpartition gleichzeitig mit einer Schreiboperation zum Schreiben in eine andere Datenpartition auftreten. In einem Fall wie in Datenpartition 170 auftretend gezeigt, kann jedoch ein Konflikt auftreten. Insbesondere darf die Leseoperation 240 zum direkten Lesen von einem Block der Datenpartition 6 nicht in der Lage sein gleichzeitig mit der Schreiboperation 260 zum Schreiben in einen anderen Block der Datenpartition 6 aufzutreten. In einer Implementierung z. B., auf das Empfangen eines Befehls hin (z. B. von einem externen Prozessor oder von einem Abschnitt einer internen Speichersteuereinheit) zum Ausführen von Leseoperation 240, kann die Schreiboperation 260 bis dahin ausgesetzt werden, bis die Leseoperation 240 beendet ist. Solch eine Aussetzung einer Schreiboperation kann aus einem spezifischen Befehl von einem Prozessor und/oder einer Speichersteuereinheit resultieren. In einer anderen Implementierung kann ein Befehl zum Ausführen von Leseoperation 240 abgelehnt werden und/oder verzögert werden, bis die Schreiboperation 260 beendet ist. In beiden Implementierungen kann die Leseoperation 240 z. B. einen Prozess 245 des Messens von Zuständen von Lesespeicherzellen in Partition 6 über Erfassungsverstärker 130 und des Schreibens von Daten, die die Zustände repräsentieren, in einen Ausgabepuffer 250 umfassen.
-
3 ist ein Zeitdiagramm eines Prozesses zum Lesen von einer Partition eines Speichers gemäß einer Ausführungsform. 8 ist ein Blockdiagramm eines seriellen Schnittstellenspeichers 800 gemäß einer Ausführungsform, welcher z. B. solch einen Prozess zum Lesen von einer Partition eines Speichers ausführen kann. Der serielle Schnittstellenspeicher 800 kann einen Eingabe-Port 810 zum Empfangen von Information betreffend Daten, Befehle, Adressen usw. umfassen. Der serielle Schnittstellenspeicher 800 kann auch einen Eingabe-Port 820 zum Empfangen eines Taktsignals und einen Ausgabe-Port zum Übertragen von Information umfassen, welche z. B. Lesedaten umfasst. Ähnlich dem oben beschriebenen Speicher, welcher den Abschnitt 100 umfasst, kann solch ein Speicher PCM umfassen, welcher in Partitionen von Speicherzellen organisiert werden kann. Die Zeile 310 kann z. B. Information umfassen, welche seriell einem Mikrocontroller über Port 810 eines seriellen Schnittstellenspeichers 800 bereitgestellt wird. Hier bedeutet „seriell”, dass solche Information sequentiell ein Bit nach dem anderen durch den Mikrocontroller übertragen oder empfangen werden kann. In einer Implementierung kann solche Information z. B. sequentiell empfangen werden, basierend, zumindest in Teilen, auf einem Taktsignal 305, welches dem seriellen Schnittstellenspeicher 800 über den Port 820 bereitgestellt wird. Insbesondere kann eine solche Information an einer steigenden Flanke des Taktsignals 305 übernommen werden (z. B. gespeichert, empfangen). Zeile 310 kann einen Befehlscode-Abschnitt 312, einen Adressabschnitt 314, einen Dummy-Abschnitt 316 und einen Datenausgabeabschnitt 318 umfassen. Wie in Zeile 330 angezeigt, kann der Befehlscodeabschnitt 312 einem Mikrocontroller in einer sequentiellen Folge, beginnend mit dem MSB eines Befehlscodes und endend mit dem LSB des Befehlscodes bereitgestellt werden. In ähnlicher Weise kann der Adressabschnitt 314 dem Mikrocontroller in einer sequentiellen Folge, beginnend mit dem MSB einer Adresse und endend mit dem LSB der Adresse, bereitgestellt werden. Zeile 320 beschreibt Information, welche durch Speicher bereitgestellt werden kann, wie Inhalte einer Speicher-partition 334, 336 usw. Abschnitt 332 kann undefiniert sein (z. B. Ausgabe bei hoher Impedanz), während der Mikrocontroller den Befehlscode-Abschnitt 312, den Adresscodeabschnitt 314 und den Dummy-Abschnitt 316 empfängt. In einer Implementierung kann der Befehlscodeabschnitt 312 z. B. ein oder mehrere Bits umfassen, welche anzeigen, ob der Befehl einen Lese-, Schreib- oder Löschbefehl umfasst. Der Adressabschnitt 314 kann eine Vielzahl von Bits umfassen, welche eine oder mehrere Positionen eines Speicherfeldes repräsentieren. Im Detail können MSBs des Adressabschnitts 314 mit einer relativ groben Beschreibung eines Speicherorts korrespondieren, während LSBs mit einer relativ genauen Beschreibung des Speicherorts korrespondieren können. Z. B. können eine oder mehrere MSBs des Adressabschnitt 314 beschreiben, welche Partition den Speicherort enthält, während LSBs des Speicherabschnitts 314 den Speicherort zum nächsten Speicherblock und/oder der Minimalgruppe von adressierbaren Speicherzellen beschreiben kann.
-
Dementsprechend kann solch eine Implementierung des Adressabschnitts 314 eine Gelegenheit bieten, festzustellen, welche Partition einen bestimmten Speicherort umfasst, durch bloßes Empfangen eines MSB-Abschnitts einer Adresse des bestimmten Speicherorts, wie in weiteren Details unten beschrieben. Der Dummy-Abschnitt 316 kann ein Zeitintervall umfassen, um eine Zeitspanne zwischen dem Empfangen einer Lese-Adresse (z. B. Adressabschnitt 314) und der Datenausgabe 318 (z. B. Lesen der Speicherzellen an der Adresse) bereitzustellen. Selbstverständlich sind solche Details des Timings eines Leseprozesses lediglich Beispiele und der beanspruchte Gegenstand ist nicht in dieser Weise beschränkt.
-
4 zeigt ein Beispiel einer detaillierten Ansicht eines Adressabschnitts des in 3 gezeigten Zeitdiagramms gemäß einer Ausführungsform. Insbesondere kann Adresse 414, welche individuelle Bits einer Adresse nummeriert von „0” bis „23” zeigt, mindestens einen Abschnitt des Adressabschnitts 314 umfassen. Wie in dem Beispiel angezeigt, kann das Adress-Bit „23” ein MSB der Adresse 414 umfassen und Adress-Bit „0” kann ein LSB der Adresse 414 umfassen für einen 128 Mb Byte-adressierbaren Speicher (wie in diesem Fall hier, kann ein einzelner Speicherort benutzt werden, um eine Gruppe von Zellen, die ein Byte speichern, zu repräsentieren). Wie oben beschrieben, kann Adresse 414 Adress-Bits umfassen, welche einem Mikrocontroller des Speichers seriell bereitgestellt werden, beginnend mit MSB 23 und endend mit LSB 0. Solche Adress-Bits können dem Mikrocontroller sequentiell ein Bit nach dem anderen, basierend, zumindest zum Teil, auf dem Taktsignal 405, seriell bereitgestellt werden. Insbesondere kann solch eine Information an einer steigenden Flanke eines Taktsignals übernommen werden. Wie oben beschrieben, können MSBs (z. B. Bits 23, 22, 21 usw.) der Adresse 414 einer relativ groben Beschreibung eines Speicherorts entsprechen, während LSBs (z. B. Bits 0, 1, 2, 3 usw.) einer relativ genauen Beschreibung des Speicherorts entsprechen können. Z. B. können Bits 23, 22 und 21 eine Partition beschreiben, welche einen bestimmten Speicherort enthält, während die verbleibenden Bits 20 bis 0 den Speicherort der nächsten Gruppe von Speicherzellen, welche ein Byte identifizieren, beschreiben können.
-
5A und 5B zeigen andere detaillierte Ansichten eines Adressabschnitts des Zeitdiagramms eines Lesebefehls, gezeigt in den 3 und 4, gemäß einer Ausführungsform. Wie oben beschrieben, kann die Adresse 414 einem Mikrocontroller ein Adress-Bit nach dem anderen, basierend, zumindest zum Teil, auf dem Taktsignal 405, sequentiell bereitgestellt werden. Insbesondere kann solch eine Information an einer steigenden Flanke des Taktsignals übernommen werden. In einer bestimmten Implementierung kann der Taktzyklus eines Taktsignals 405 z. B. eine Periode von ungefähr 10 Nanosekunden haben. MSBs (z. B. Bits 23, 22, 21 usw.) der Adresse 414 können einer relativ groben Beschreibung eines Speicherorts entsprechen. Z. B. können die Bits 23, 22 und 21 die Partition beschreiben, welche den Zielspeicherort des Lesebefehls enthält. In solch einem Fall können drei der MSBs eine von acht Partitionen bezeichnen. In einem anderen Beispiel können zwei MSBs ausreichend sein, um eine von vier Partitionen zu bezeichnen. In noch einem anderen Beispiel können vier MSBs ausreichend sein, um eine von sechzehn Partitionen zu bezeichnen, usw. In einer Implementierung, welche zum Teil durch die 5A und 5B beschrieben ist, kann ein Speicherfeld acht Partitionen umfassen, obwohl der beanspruchte Gegenstand nicht in dieser Weise beschränkt ist. Dementsprechend kann ein Mikrocontroller im Anschluss an das Empfangen der MSBs 23, 22, 21 feststellen, ob eine Schreiboperation in der gleichen Partition wie in der des Zielspeicherorts des Lesebefehls auftritt. Wenn der Mikrocontroller feststellt, dass solche eine Schreiboperation auftritt, kann der Mikrocontroller einen Prozess des Unterbrechens der Schreiboperation beginnen. Solch ein Unterbrechungsprozess kann im Anschluss an das Empfangen des Bits 21 beginnen, wie durch Timing-Pfeil 555 angezeigt. Dementsprechend kann solch ein Unterbrechungsprozess zu einer relativ frühen Zeit unter Berücksichtigung der Zeit beginnen, die benötigt wird, um die verbleibenden Bits der Speicheradresse (z. B. Bits 20 bis 0) zu empfangen. Solch eine frühe Feststellung, welche Partition den Zielspeicherort umfasst und ob ein Schreibprozess in der gleichen Partition auftritt, kann einen Vorteil gewähren, welcher relativ schnelle Lesezeiten umfasst, wie unten detaillierter beschrieben.
-
Ein nach dem Empfangen von Bit 21 gestarteter Unterbrechungsprozess kann bis zur Beendigung einige Zeit in Anspruch nehmen. In einer Implementierung kann eine zur Beendigung eines Unterbrechungsprozesses verfügbare Zeitspanne der Zeit entsprechen, die benötigt wird, um zusätzliche Bits der Speicheradresse 414 zu empfangen, wie durch Timing-Pfeil 545 angezeigt. Dementsprechend kann ein Mikrocontroller einen gleichzeitigen Prozess des Empfangens der zusätzlichen Bits der Speicheradresse 414 und des Beendens einer Schreibunterbrechung ausführen. Solch ein gleichzeitiger Prozess kann einen Vorteil von z. B. verbesserter Lesegeschwindigkeit gewähren. Nach Beendigung eines Unterbrechungsprozesses können ein oder mehrere Prozesse, welche in dem Lesen von einer Speichervorrichtung involviert sind, beginnen. Insbesondere kann ein Leseprozess interne Erfassungsoperationen zum Detektieren von Zuständen oder Logikebenen einer oder mehrerer Speicherzellen umfassen. In einer in 5A gezeigten Implementierung können solche internen Erfassungsoperationen für eine Speicherseite ausgeführt werden. In einem bestimmten Beispiel kann eine Seite acht Speicherbytes umfassen. Somit kann eine Leseoperation einer bestimmten Seite, nachdem das erste der vier LSBs, welches durch den Mikrocontroller empfangen wurde, nämlich Bit 3, identifiziert wurde, gestartet werden. In dem in 5A gezeigten Fall können interne Erfassungsoperationen beginnen, sobald der Mikrocontroller die Seite, welche den Zielspeicherort des Lesebefehls umfasst, wie durch Pfeil 535 angezeigt, identifizieren kann. Als ein anderes Beispiel, wie in 5B gezeigt, kann für eine Seitengröße von vier Bytes eine Leseoperation einer bestimmten Seite gestartet werden, nachdem das erste von drei LSBs, welche durch den Mikrocontroller empfangen wurden, nämlich Bit 2, identifiziert wurde. Im in 5B gezeigten Fall können interne Erfassungsoperationen beginnen, sobald der Mikrocontroller die Seite identifizieren kann, welche den Zielspeicherort des Lesebefehls, wie durch Pfeil 536 angezeigt, umfasst. In diesem Beispiel kann ein weiterer Taktzyklus verfügbar sein, um eine Schreiboperation zu unterbrechen, verglichen mit dem vorherigen Beispiel. Dementsprechend kann ein Mikrocontroller einen gleichzeitigen Prozess des Empfangens der verbleibenden Bits der Speicheradresse und des Beginnens der internen Erfassungsoperationen für Leseoperationen ausführen. Solch ein gleichzeitiger Prozess kann z. B. einen Vorteil von verbesserter Lesegeschwindigkeit gewähren.
-
6 ist ein Flussdiagramm eines Prozesses 600 zum Lesen von einer Datenpartition eines Speicherfeldes gemäß einer Ausführungsform. Solch ein Prozess kann z. B. unter Benutzung der in den 3–5 gezeigten Timing-Diagrammen ausgeführt werden, obwohl der beanspruchte Gegenstand nicht in dieser Weise beschränkt ist. Am Block 620 kann ein Mikrocontroller einen Lesebefehl empfangen, welcher z. B. durch eine Speichersteuereinheit und/oder einen Prozessor, wie oben beschrieben, bereitgestellt werden kann. In einer Implementierung kann solch ein Mikrocontroller innerhalb einer Speichervorrichtung, welche das Speicherfeld umfasst, eingebettet sein. Der Mikrocontroller kann einen Adressabschnitt des Lesebefehls seriell empfangen, beginnend mit einem MSB einer Speicheradresse und fortfahrend mit dem Empfangen von verbleibenden Bits der Speicheradresse, bis das LSB empfangen wird. Solch ein Adressabschnitt kann einen Zielort des Speicherfeldes, von wo aus die Daten gelesen werden sollen, spezifizieren. Am Block 630 kann der Mikrocontroller feststellen, welche Partition den Zielort umfasst, nach Empfangen eines oder mehrerer MSBs der Speicheradresse. Z. B. kann, wie oben beschrieben, der Mikrocontroller feststellen, welche Partition den Zielort umfasst nach Empfangen von drei MSBs der Speicheradresse. Bei Kenntnis davon, welche Partition den Zielort umfasst, kann der Mikrocontroller feststellen, ob eine Schreiboperation in der gleichen Partition auftritt, wie bei Raute 640. Wenn keine solche Schreiboperation auftritt, kann der Prozess 600 zu Block 643 übergehen, wo der Mikrocontroller das Empfangen der verbleibenden Bits der Speicheradresse beenden kann. An Block 648 kann der Mikrocontroller Prozesse zum Lesen von dem Zielspeicherort beginnen. Z. B. können solche Prozesse interne Erfassungsoperationen umfassen, welche beginnen können, sobald der Mikrocontroller die Seite identifizieren kann, welche den Zielspeicherort des Lesebefehls, wie oben beschrieben, umfasst. Andererseits kann der Prozess 600 übergehen zu Block 650, wo der Mikrocontroller einen Prozess zum Unterbrechen der Schreiboperation beginnen kann, wenn solch eine Schreiboperation in der gleichen Partition wie der des Zielorts auftritt. Z. B. kann solch ein Prozess des Unterbrechens einer Schreiboperation einer Partition das Speichern einer Adresse, das Wiederherstellen interner Spannungen zu einer Lesebedingung und das Freigeben der Kontrolle der Partition zum Lesen der Schaltungen umfassen, Der Mikrocontroller kann einen gleichzeitigen Prozess des Empfangens zusätzlicher Bits der Speicheradresse und des Beendens einer Schreibunterbrechung ausführen. An Block 660 kann der Mikrocontroller Prozesse zum Lesen von dem Zielspeicherort beginnen. Z. B. können solche Prozesse interne Erfassungsoperationen umfassen, welche beginnen können, sobald der Mikrocontroller die Seite, welche den Zielspeicherort des Lesebefehls, wie oben beschrieben, umfasst, identifizieren kann. An Raute 670 kann eine Feststellung gemacht werden, ob die Leseoperation beendet ist. Wenn nicht, dann kann Prozess 600 darauf warten, dass solch eine Leseoperation endet. Wenn die Leseoperation beendet ist, kann Prozess 600 übergehen zu Block 680, wo der Mikrocontroller die Schreiboperation fortsetzen kann, welche vorher unterbrochen wurde. Z. B. kann solch ein Prozess des Fortsetzens einer Schreiboperation einer Partition das Abrufen der gespeicherten Adresse der Schreiboperation, das Wiederherstellen interner Spannungen auf einen Schreibzustand und das Freigeben der Kontrolle der Partition, um Schaltungen zu beschreiben, umfassen. Selbstverständlich sind solche Details des Prozesses 600 lediglich Beispiele und der beanspruchte Gegenstand ist nicht in dieser Weise beschränkt.
-
7 ist ein schematisches Diagramm, welches eine beispielhafte Ausführungsform eines Rechnersystems 700 darstellt, welches eine Speichervorrichtung 710 umfasst. Solch eine Rechnervorrichtung kann ein oder mehrere Prozessoren umfassen, z. B. um eine Anwendung und/oder einen anderen Code auszuführen. Z. B. kann die Speichervorrichtung 710 eine Anzahl von Datenpartitionen umfassen, wie in 2 gezeigt. Eine Rechnervorrichtung 704 kann repräsentativ sein für irgendein/e Vorrichtung, Gerät oder Maschine, welche/s konfiguriert werden kann, um die Speichervorrichtung 710 zu verwalten. Die Speichervorrichtung 710 kann eine Speichersteuereinheit 712 und einen Speicher 722 umfassen. Als Beispiel, aber nicht als Beschränkung, kann die Rechnervorrichtung 704 umfassen: eine oder mehrere Rechnervorrichtungen und/oder Plattformen, wie z. B. einen Desktop-Computer, einen Laptop-Computer, eine Workstation, eine Servervorrichtung o. Ä.; eine oder mehrere Personalrechner oder Kommunikationsvorrichtungen oder Geräte, wie z. B. einen persönlichen Digital Assistent, mobile Kommunikationsvorrichtung o. Ä.; ein Rechnersystem und/oder assoziierte Dienstleistungsproviderfähigkeit, wie z. B. eine Datenbank oder ein Datenspeicherservice-Provider/-System; und/oder irgendeine Kombination davon.
-
Es wird anerkannt, dass alle oder Teile der verschiedenen Vorrichtungen, welche in dem System 700 gezeigt sind, und die Prozesse und Methoden, wie hier weiter beschrieben, implementiert werden können, indem Hardware, Firmware, Software oder eine Kombination davon benutzt wird oder anderweitig umfasst wird. Daher kann als Beispiel, aber nicht als Beschränkung, die Rechnervorrichtung 704 mindestens eine Verarbeitungseinheit 720 umfassen, welche über einen Bus 740 und einen Host oder Speichersteuereinheit 712 operativ an einen Speicher 722 gekoppelt ist. Die Verarbeitungseinheit 720 ist repräsentativ für eine oder mehrere Schaltungen, konfigurierbar, um mindestens einen Teil einer Datenrechnerprozedur oder Prozess zu verarbeiten. Als Beispiel, aber nicht als Beschränkung, kann die Verarbeitungseinheit 720 einen oder mehrere Prozessoren, Steuereinheiten, Mikroprozessoren, Mikrocontroller, anwendungsspezifisch integrierte Schaltkreise, digitale Signalprozessoren, programmierbare Logikvorrichtungen, feldprogrammierbare Gate Arrays u. Ä. oder eine Kombination davon umfassen. Die Verarbeitungseinheit 720 kann ein Betriebssystem umfassen, welches konfiguriert ist, um mit Speichersteuereinheit 712 zu kommunizieren. Solch ein Betriebssystem kann z. B. Befehle erzeugen, welche an die Speichersteuereinheit 712 über den Bus 740 gesendet werden sollen. Solche Befehle können Lese- und/oder Schreibbefehle umfassen. Die Speichervorrichtung 710 kann einen Mikrocontroller 715 umfassen, welcher den Prozess 600, wie oben beschrieben, ausführen kann, um z. B. einen Leseprozess durch Unterbrechen eines auftretenden Schreibprozesses in einer gleichen Speicherpartition auszuführen. Mikrocontroller 715 kann im Speicher 722 eingebettet sein, wie z. B. auf dem gleichen Chip, welcher ein Speicherfeld umfasst.
-
Der Speicher 722 ist repräsentativ für irgendeinen Datenspeichermechanismus. Der Speicher 722 kann z. B. ein primäres Speicherfeld 724 und/oder einen sekundären Speicher 726 umfassen. Das primäre Speicherfeld 724 kann z. B. einen Speicher mit wahlfreiem Zugriff, Nur-Lese-Speicher usw. umfassen. Während in diesem Beispiel als separat von der Verarbeitungseinheit 720 dargestellt, sollte es zu verstehen sein, dass alles oder Teile des primären Speicherfeldes 724 innerhalb oder anderweitig zusammen angeordnet/gekoppelt mit der Verarbeitungseinheit 720 bereitgestellt werden kann.
-
Der sekundäre Speicher 726 kann z. B. den gleichen oder einen ähnlichen Typ von Speicher wie der primäre Speicher und/oder eines oder mehrere Datenspeichervorrichtungen oder -systeme, wie z. B. ein Plattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, ein Festkörperspeicherlaufwerk usw. umfassen. In bestimmten Implementierungen kann der sekundäre Speicher 726 operativ empfänglich sein für, oder anderweitig konfigurierbar zum Koppeln mit einem computerlesbaren Medium 728. Das computerlesbare Medium 728 kann z. B. irgendein Medium umfassen, welches Daten, Code, und/oder Instruktionen für eine oder mehrere der Vorrichtungen in dem System 700 tragen und/oder zugreifbar machen kann. Die Rechnervorrichtung 704 kann z. B. eine Eingabe/Ausgabe 732 umfassen.
-
In einer bestimmten Ausführungsform kann das Rechnersystem 700 eine Speichervorrichtung umfassen, welche ein Speicherfeld 724 und einen Mikrocontroller 715 umfasst. Solch ein Mikrocontroller kann einen Lesebefehl, welcher einen ersten Teil einer Speicheradresse des Speicherfeldes 724 umfasst, empfangen, und kann eine Schreiboperation, welche in einer Speicherpartition, welche mit dem ersten Abschnitt der Speicheradresse korrespondiert, ausgeführt wird, unterbrechen. Solch eine Unterbrechung einer Schreiboperation kann während des Empfangens eines zweiten Abschnitts der Speicheradresse ausgeführt werden. Das Rechnersystem 700 kann auch die Verarbeitungseinheit 720 umfassen, um eine oder mehrere Anwendungen zu bedienen und an den Mikrocontroller 715 gerichtete Lesebefehle zu initiieren, um z. B. Zugriff auf Speicherzellen in Speicherfeld 724 bereitzustellen.
-
Die Eingabe/Ausgabe 732 ist stellvertretend für eine oder mehrere Vorrichtungen oder Merkmale, die konfiguriert werden können, um menschliche und/oder Maschinen-Eingaben anzunehmen oder auf andere Weise einzuführen, und/oder eine oder mehrere Vorrichtungen oder Merkmale, die konfiguriert werden können, um menschliche und/oder Maschinen-Ausgaben zu liefern oder auf andere Weise bereitzustellen. Beispielhaft, aber nicht beschränkend, kann die Eingabe-/Ausgabe-Vorrichtung 732 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Berührungsbildschirm, Daten-Port usw. umfassen. Die Ausdrücke „und” und „und/oder” und „oder”, wie hierin benutzt, können eine Vielfalt an Bedeutungen umfassen, die zumindest in Teilen vom Kontext, in welchem Sie benutzt werden, abhängen werden. Typischerweise sollen „und/oder” sowie „oder”, wenn benutzt, um eine Liste wie A, B oder C zu assoziieren, bedeuten, dass A, B und C hier im inklusiven Sinn benutzt wird sowie A, B oder C im exklusiven Sinn benutzt wird. Der in dieser Beschreibung durchgehend gemachte Bezug auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, Struktur oder Eigenschaft, welche/s in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform des beanspruchten Gegenstands umfasst wird. Wenn daher der Ausdruck „in einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass diese sich alle auf dieselbe Ausführungsform beziehen. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
-
Während veranschaulicht und beschrieben wurde, was gegenwärtig als beispielhafte Ausführungsformen angesehen wird, wird es durch Fachleute zu verstehen sein, dass verschiedene andere Modifikationen gemacht werden können und Aquivalente ersetzt werden können, ohne von dem beanspruchten Gegenstand abzuweichen. Zusätzlich können viele Modifikationen gemacht werden, um eine bestimmte Situation den Lehren des beanspruchten Gegenstandes anzupassen, ohne von dem zentralen hierin beschriebenen Konzept abzuweichen. Daher ist es beabsichtigt, dass der beanspruchte Gegenstand nicht auf die bestimmten offenbarten Ausführungsformen beschränkt wird, sondern dass solch ein beanspruchter Gegenstand auch alle Ausführungsformen umfassen kann, welche in den Bereich der beigefügten Ansprüche oder Äquivalente davon fallen.