-
TECHNISCHES GEBIET
-
Diese Anmeldung betrifft im Allgemeinen den Einfluss der Temperatur auf Speichervorrichtungen. Genauer betrifft diese Anmeldung das Regulieren der Temperaturdrosselung auf Basis der Verwendung, der Gesundheit oder des Alters der Speichervorrichtung und das Einstellen von Speicherparametern auf Basis der Temperatur.
-
ALLGEMEINER STAND DER TECHNIK
-
Nichtflüchtige Speichersysteme wie etwa Flash-Speicher werden verbreitet zur Verwendung in Verbraucherprodukten eingesetzt. Flash-Speicher können sich in verschiedenen Formen finden, zum Beispiel in der Form einer tragbaren Speicherkarte, die zwischen Host-Vorrichtungen befördert werden kann, oder als Solid-State-Disk (SSD), die in eine Host-Vorrichtung eingebettet ist. Eine Überlegung hinsichtlich der Haltbarkeit und der Verlässlichkeit eines solchen Speichers ist die Überkreuztemperatur. Die Überkreuztemperatur (d.h., X-temp) kann ein Temperaturbereich oder eine Temperaturschwankung zwischen dem Datenprogrammieren und dem -lesen sein. Zum Beispiel kann eine hohe X-temp verursacht werden, wenn Daten bei einer hohen Temperatur (heiß) in eine Speichervorrichtung geschrieben werden, aber dann bei einer niedrigen Temperatur (kalt) gelesen werden. Ebenso ist das Schreiben bei einer kalten Temperatur und das Lesen bei einer heißen Temperatur eine hohe Überkreuztemperatur. Bei Speichervorrichtungen (z.B. einem NAND-Flash-Speicher) kann die X-temp ein Mechanismus zur Begrenzung der Zuverlässigkeit sein. Eine hohe X-temp kann zu Fehlern führen. Insbesondere nimmt die X-temp-Bitfehlerrate (BER) mit einem größeren X-temp-Delta zu. Die Speicherhaltbarkeit und die Leistung könnten durch Ansprechen der X-temp verbessert werden.
-
KURZDARSTELLUNG
-
Eine Speichervorrichtung mit einem Speicher kann die Drosselung abändern, um Überkreuztemperaturauswirkungen zu verringern. Die Entscheidung, zu drosseln, kann auf einer Speichertemperatur beruhen (d.h., Temperaturdrosselung), oder kann auf der Gesundheit, der Verwendung oder der Leistung (z.B. Hot Count oder Bitfehlerrate) der Speichervorrichtung beruhen. Die Temperaturdrosselung kann so ausgeführt werden, dass die Gesundheit, die Verwendung oder die Leistung (z.B. Hot Count oder Bitfehlerrate) der Speichervorrichtung berücksichtigt wird. Ebenso kann die Drosselung auf Basis der Gesundheit, der Verwendung oder der Leistung der Speichervorrichtung die Temperatur der Speichervorrichtung benutzen, um die Drosselungszeit zu optimieren. Zum Beispiel kann eine Prüfmodusmatrix (test mode matrix, TMM) so abgeändert werden, dass sie von der Temperatur abhängt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1A ist ein Blockdiagramm eines beispielhaften nichtflüchtigen Speichersystems.
-
1B ist ein Blockdiagramm eines Speichermoduls, das mehrere nichtflüchtige Speichersysteme enthält.
-
1C ist ein Blockdiagramm eines hierarchischen Speichersystems.
-
2A ist ein Blockdiagramm von beispielhaften Komponenten einer Steuerung eines nichtflüchtigen Speichersystems.
-
2B ist ein Blockdiagramm von beispielhaften Komponenten eines nichtflüchtigen Speichers eines nichtflüchtigen Speichersystems.
-
3 ist ein Blockdiagramm einer Flash-Vorrichtungs-Steuerung.
-
4 ist ein Diagramm, das eine beispielhafte Überkreuztemperatur(X-temp)-Situation veranschaulicht.
-
5 ist ein Ablaufdiagramm zur Abwandlung der Drosselung auf Basis der Speichergesundheit/-verwendung und der Temperatur.
-
6 ist ein Ablaufdiagramm zur Abwandlung einer Prüfmodusmatrix (TMM) auf Basis der Temperatur.
-
7 ist ein Ablaufdiagramm eines Temperaturdrosselungsschwellenwerts, der von der Speichergesundheit/-verwendung abhängt.
-
8 ist ein Diagramm, das beispielhafte Drosselungsparameter veranschaulicht.
-
9 ist eine Darstellung eines beispielhaften dreidimensionalen (3D) Speicheraufbaus.
-
10 ist eine beispielhafte physikalische Speicherorganisation eines Speicherblocks.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Es können Kundenanforderungen bestehen, die dazu führen, dass eine Drosselung nötig ist. Am Beginn der Lebenszeit (beginning of life, "BOL") können Schwankungen in Vorrichtungen vorliegen und kann eine Drosselung verwendet werden, um die Abweichungen in der Leistung zu beseitigen. Ebenso können Kundenanforderungen hinsichtlich der Leistungsqualität bestehen, die ebenfalls durch eine Drosselung angesprochen werden können. Die Drosselung kann auch verwendet werden, um die Bandbreite zu steuern. Die Rate der Wärmeerzeugung in einer Hochtemperaturumgebung kann ebenfalls durch eine Drosselung angesprochen werden. Die Temperaturdrosselung kann auf Basis einer Temperaturdetektion (z.B. einer heißen Umgebung) erfolgen, um eine Überhitzung zu verhindern. Diese Drosselung kann als thermische Drosselung bezeichnet werden, was die Drosselung zur Steuerung der Wärmeerzeugung abdeckt. Umgekehrt kann sich die Leistungsdrosselung auf das Steuern der Leistung beziehen.
-
Die Drosselung kann verwendet werden, um die X-temp anzusprechen. Der Speicher kann aus verschiedenen Gründen gedrosselt werden, einschließlich zur Begrenzung des Stromverbrauchs, zur Überwachung/Steuerung der Temperatur, zur Erweiterung der Speicherhaltbarkeit oder zur Erzielung einer gleichbleibenderen Speicherleistung. Entsprechend können Leistungsschwankungen, hohe Temperaturen oder Stromüberschüsse einen Grund zum Drosseln darstellen. Wie nachstehend beschrieben kann die Drosselung Abänderungen an einer Anzahl von Speicherparametern wie etwa den in 8 besprochenen Parametern beinhalten. Die Entscheidung, zu drosseln, kann auf einer Speichertemperatur beruhen (d.h., Temperaturdrosselung) oder kann auf der Gesundheit, der Verwendung oder der Leistung der Speichervorrichtung (z.B. Hot Count oder Bitfehlerrate) beruhen. Wie nachstehend beschrieben kann die Temperaturdrosselung die Gesundheit, Verwendung oder Leistung der Speichervorrichtung berücksichtigen, wenn ein Temperaturdrosselungsschwellenwert erstellt wird, während die Drosselung auf Basis der Gesundheit, Verwendung oder Leistung der Speichervorrichtung die Temperatur der Speichervorrichtung benutzen kann, um die Drosselungszeit zu optimieren.
-
Die Temperaturdrosselung kann benutzt werden, um heiße Temperaturen zu begrenzen. Hohe Temperaturen in einer Speichervorrichtung können einen Grund für Fehler darstellen. Entsprechend kann dann, wenn eine Temperatur einen bestimmten Schwellenwert erreicht, der Betrieb der Speichervorrichtung gedrosselt werden, um zu versuchen, die Vorrichtungstemperatur zu verringern. Die Drosselung, die verwendet werden kann, ist in 8 näher beschrieben. Die Temperaturdrosselung kann ein firmwareinitiiertes Verhalten sein, bei dem die Speichervorrichtungsleistung verringert wird, wenn eine höchstzulässige Systemtemperatur erreicht ist. Die Verringerung der Leistung kann sicherstellen, dass der Speicher keine für das System maximal annehmbare Temperatur (Temperaturschwellenwert) überschreitet. Wenn ein Drosselungsschwellenwert über die Lebensdauer der Speichervorrichtung hinweg gleichbleibend ist, kann er früh in der Lebensdauer (wenn der Schwellenwert höher sein könnte) ineffizient sein, während er auch später in der Lebensdauer (wenn der Schwellenwert niedriger sein sollte) möglicherweise weniger genau sein kann. Da die Drosselung die Verringerung der Leistung einer Speichervorrichtung umfassen kann, sollte die Drosselung so weit als möglich verringert werden, um die Leistung zu maximieren. Eine Betrachtung der Gesundheit oder der Verwendung der Speichervorrichtung kann einen genaueren Temperaturdrosselungsschwellenwert bereitstellen.
-
Ebenso kann das Abändern von Prüfparametern (z.B. in einer nachstehend besprochenen Prüfmodusmatrix (TMM)) hinsichtlich der Gesundheit der Speichervorrichtung unter Berücksichtigung der Temperatur ebenfalls eine verringerte Drosselung gestatten. Durch temperaturabhängiges Gestalten der TMM kann der Temperaturüberkreuzbereich ohne Verlässlichkeitsbedenken erweitert werden. Eine Prüfmodusmatrix (TMM) kann verwendet werden, um eine Drosselung bestimmter Speicherparameter herzustellen, um Fehler zu verhindern oder die Bitfehlerrate (BER) zu verringern. Die TMM kann sich auf die Gesundheit oder die Haltbarkeit des Speichers verlassen. Zum Beispiel kann die TMM auf einem Hot Count (z.B. Speicher/Lösch-Zyklen (program/erase, PE-Zyklen)) oder der BER beruhen. Wenn der Hot Count oder die BER einen Schwellenwert übersteigt, können bestimmte Speicherparameter gedrosselt werden, um zukünftige Fehler zu verringern. Die Drosselung, die verwendet werden kann, ist in 8 näher beschrieben. Die TMM kann so abgeändert werden, dass sie temperaturabhängig ist. Insbesondere kann die TMM verwendet werden, um vor Datenverlässlichkeitsproblemen aufgrund eines Temperaturüberkreuzens zu schützen. Durch temperaturabhängiges Gestalten der TMM kann der Temperaturüberkreuzbereich ohne Verlässlichkeitsbedenken erweitert werden.
-
1A bis 2B sind beispielhafte Speichersysteme, die die hier beschriebene adaptive Drosselung ausführen können. 1A ist ein Blockdiagramm, das ein nichtflüchtiges Speichersystem veranschaulicht. Das nichtflüchtige Speichersystem 100 umfasst eine Steuerung 102 und einen nichtflüchtigen Speicher, der aus einem oder mehreren nichtflüchtigen Speicherchips 104 gebildet sein kann. Wie hier verwendet bezieht sich der Ausdruck "Chip" auf den Satz von nichtflüchtigen Speicherzellen und die zugehörige Schaltung zur Bewerkstelligung des physikalischen Betriebs dieser nichtflüchtigen Speicherzellen, die auf einem einzelnen Halbleitersubstrat gebildet sind. Die Steuerung 102 ist mit einem Host-System verknüpft und sendet Befehlsabfolgen für Lese-, Programmier- und Löschtätigkeiten an den nichtflüchtigen Speicherchip 104. Der nichtflüchtige Speicherchip 104 kann ein Betriebssystem für den Host speichern.
-
Beispiele für Host-Systeme umfassen, jedoch ohne Beschränkung darauf, PCs (Personal Computers) wie Desktop- oder Laptop- oder andere tragbare Computer, Datenzentrumsserver, Tablets, Mobilvorrichtungen, Mobiltelefone, Smartphones, Minicomputer (PDAs), Spielvorrichtungen, digitale Fotokameras, digitale Filmkameras und tragbare Medienabspielgeräte. Für tragbare Speicherkartenanwendungen kann ein Host eine eingebaute Aufnahme für eine oder mehrere Arten von Speicherkarten oder Flash-Laufwerken aufweisen, oder kann ein Host Adapter, in die eine Speicherkarte gesteckt wird, benötigen. Das Speichersystem kann seine eigene Speichersteuerung und Treiber aufweisen, doch gibt es auch einige Nurspeichersysteme, die statt dessen durch Software, die von dem Host, mit dem der Speicher verbunden ist, ausgeführt wird, gesteuert werden. Bei einigen Speichersystemen, die die Steuerung enthalten, insbesondere jenen, die in einen Host eingebettet sind, sind der Speicher, die Steuerung und Treiber häufig auf einem einzelnen integrierten Schaltungschip gebildet. Der Host kann unter Verwendung jedes beliebigen Kommunikationsprotokolls wie etwa, aber ohne Beschränkung darauf, des Serial-AT-Attachment(SATA)-Protokolls, des Serial-Attached-SCSI(SAS)-Protokolls, des Nonvolatile-Memory-Express(NVMe)-Protokolls, des Secure-Digital(SD)-Prokokolls, des Memory-Stick(ME)-Protokolls und des Universal-Serial-Bus(USB)-Protokolls mit der Speicherkarte kommunizieren.
-
Die Steuerung 102 (die eine Flash-Speicher-Steuerung oder eine Vorrichtungssteuerung sein kann) kann die Form einer Verarbeitungsschaltung, eines Mikroprozessors oder Prozessors, und eines computerlesbaren Mediums, das einen computerlesbaren Programmcode (z.B. Software oder Firmware) speichert, der zum Beispiel durch den (Mikro)prozessor, Logikgatter, Schalter, eine anwendungsspezifische integrierte Schaltung (ASIC), eine programmierbare Logiksteuerung und eine eingebettete Mikrosteuerung ausgeführt werden kann, annehmen. Die Steuerung 102 kann mit Hardware und/oder Software ausgebildet sein, um die verschiedenen Funktionen, die nachstehend beschrieben sind und in den Ablaufdiagrammen gezeigt sind, auszuführen. Außerdem können einige der Komponenten, die als innerhalb der Steuerung gezeigt sind, auch außerhalb der Steuerung gespeichert sein, und können andere Komponenten verwendet werden. Zudem könnte der Ausdruck "betrieblich in Kommunikation mit" in einer direkten Kommunikation oder durch eine oder mehrere Komponenten, die hier gezeigt oder beschrieben oder nicht gezeigt oder beschrieben sein können, in einer indirekten (verdrahteten oder drahtlosen) Kommunikation bedeuten.
-
Wie hier verwendet handelt es sich bei einer Flash-Speicher-Steuerung um eine Vorrichtung, die in dem Flash-Speicher gespeicherte Daten verwaltet und mit einem Host wie etwa einem Computer oder einer elektronischen Vorrichtung kommuniziert. Eine Flash-Speicher-Steuerung kann zusätzlich zu der bestimmten Funktionalität, die hier beschrieben ist, über verschiedene Funktionalitäten verfügen. Zum Beispiel kann die Flash-Speicher-Steuerung den Flash-Speicher formatieren, um sicherzustellen, dass der Speicher richtig arbeitet, schlechte Flash-Speicherzellen festlegen, und Reservezellen als Ersatz für zukünftige ausgefallene Zellen zuteilen. Ein Teil der Reservezellen kann verwendet werden, um Firmware für den Betrieb der Flash-Speicher-Steuerung zu halten und andere Funktionen auszuführen. Wenn im Betrieb ein Host Daten aus dem Flash-Speicher lesen oder in diesen schreiben muss, wird er mit der Flash-Speicher-Steuerung kommunizieren. Wenn der Host eine logische Adresse bereitstellt, von der Daten gelesen/an die Daten geschrieben werden sollen, kann die Flash-Speicher-Steuerung die von dem Host erhaltene logische Adresse in eine physikalische Adresse in dem Flash-Speicher umwandeln (alternativ kann der Host die physikalische Adresse bereitstellen). Die Flash-Speicher-Steuerung kann auch verschiedene Speicherverwaltungsfunktionen ausführen, wie etwa, aber ohne Beschränkung darauf, eine Abnutzungsverteilung (Verteilen von Schreibvorgängen, um die Abnutzung bestimmter Speicherblöcke, in die andernfalls wiederholt geschrieben würde, zu vermeiden) und eine Speicherbereinigung (nachdem ein Block voll ist, werden nur die gültigen Seiten von Daten zu einem neuen Block bewegt, damit der Block gelöscht und wiederverwendet werden kann).
-
Der nichtflüchtige Speicherchip 104 kann jedes beliebige passende nichtflüchtige Speichermedium, einschließlich, aber ohne Beschränkung darauf, NAND-Flash-Speicherzellen, NOR-Flash-Speicherzellen, Phasenwechselspeichern (Phase Change Memory, PCM), resistiven Direktzugriffsspeichern (reRAM), oder magnetoresistiven Direktzugriffsspeicher (MRAM) beinhalten. Die Speicherzellen können die Form von Festzustands- (z.B. Flash-) Speicherzellen annehmen und können einmal programmierbar, einige Male programmierbar oder viele Male programmierbar sein. Die Speicherzellen können außerdem SingleLevel-Cells (SLC), Multiple-Level-Cells (MLC), Triple-Level-Cells (TLC) sein oder andere Speicherzellenebenentechnologien sein, die derzeit bekannt sind oder später entwickelt werden. Außerdem können die Speicherzellen auf eine zweidimensionale oder eine dreidimensionale Weise hergestellt werden.
-
Die Schnittstelle zwischen der Steuerung 102 und dem nichtflüchtigen Speicherchip 104 kann jede beliebige geeignete Flash-Schnittstelle wie etwa Toggle Mode 200, 400 oder 800 sein. Bei einer Ausführungsform kann das Speichersystem 100 Teil eines eingebetteten Speichersystems sein. Zum Beispiel kann der Flash-Speicher in den Host eingebettet sein, etwa in der Form eines Solid-State-Disk(SSD)-Laufwerks, das in einem Personalcomputer installiert ist. Bei einer anderen Ausführungsform kann das Speichersystem 100 ein kartenbasiertes System sein, wie etwa eine Secure-Digital(SD)- oder eine Micro-Secure-Digital(Micro-SD)-Karte.
-
Obwohl das nichtflüchtige Speichersystem 100 bei dem Beispiel, das in 1A veranschaulicht ist, zwischen der Steuerung 102 und dem nichtflüchtigen Speicherchip 104 einen einzelnen Kanal aufweist, ist der hier beschriebene Gegenstand nicht auf das Aufweisen eines einzelnen Kanals beschränkt. Zum Beispiel können bei einigen NAND-Speichersystemarchitekturen wie in 1B und 1C abhängig von den Fähigkeiten der Steuerung 2, 4, 8 oder mehr NAND-Kanäle zwischen der Steuerung und der NAND-Speichervorrichtung vorhanden sein. Bei jeder der hier beschriebenen Ausführungsformen können zwischen der Steuerung und dem Speicherchip mehr als ein Kanal vorhanden sein, auch wenn in den Zeichnungen ein einzelner Kanal gezeigt ist.
-
1B veranschaulicht ein Speichermodul 200, das mehrere nichtflüchtige Speichersysteme 100 aufweist. Somit kann das Speichermodul 200 eine Speichersteuerung 202, die mit einem Host und einem Speichersystem 204, das mehrere nichtflüchtige Speichersysteme 100 aufweist, verknüpft ist, aufweisen. Die Schnittstelle zwischen der Speichersteuerung 202 und einem nichtflüchtigen Speichersystem 100 kann eine Busschnittstelle wie etwa eine Serial-Advanced-Technology-Attachment(SATA)- oder eine Peripheral-Component-Interface-Express (PCIe)-Schnittstelle sein. Das Speichermodul 200 kann bei einer Ausführungsform ein Solid-State-Laufwerk (SSD) sein, wie es sich in tragbaren Rechenvorrichtungen wie Laptop-Computern und Tablet-Computern findet.
-
1C ist ein Blockdiagramm, das ein hierarchisches Speichersystem veranschaulicht. Ein hierarchisches Speichersystem 210 weist mehrere Speichersteuerungen 202 auf, die jeweils ein entsprechendes Speichersystem 204 steuern. Host-Systeme 212 können über eine Busschnittstelle auf Speicher in dem hierarchischen Speichersystem zugreifen. Bei einer Ausführungsform kann die Busschnittstelle eine Non-Volatile-Memory-Express(NVMe)- oder eine Fiber-Channel-over-Ethernet(FCoE)-Schnittstelle sein. Bei einer Ausführungsform kann das in 1C veranschaulichte System ein rahmenmontierbares Massenspeichersystem sein, das für mehrere Host-Computer zugänglich ist, wie es sich etwa in einem Datenzentrum oder an einem anderen Ort, an dem eine Massenspeicherung nötig ist, findet.
-
2A ist ein Blockdiagramm, das beispielhafte Komponenten der Steuerung 102 ausführlicher zeigt. Die Steuerung 102 weist ein Front-End-Modul 108, das mit einem Host verknüpft ist, ein Back-End-Modul 110, das mit dem einen oder den mehreren nichtflüchtigen Speicherchips 104 verknüpft ist, und verschiedene andere Module, die Funktionen durchführen, welche nun ausführlich beschrieben werden, auf. Das Back-End-Modul 110 kann den Warteschlangenmanager 306 und/oder die Flash-Translation-Layer 138, die in Bezug auf 3 gezeigt und beschrieben sind, aufweisen.
-
Ein Modul kann zum Beispiel die Form einer gepackten funktionellen Hardwareeinheit, die zur Verwendung mit anderen Komponenten gestaltet ist, eines Teils eines Programmcodes (z.B. Software oder Firmware), der durch einen (Mikro)prozessor oder eine Verarbeitungsschaltung, der bzw. die gewöhnlich eine bestimmte Funktion von in Zusammenhang stehenden Funktionen durchführt, ausführbar ist, oder einer eigenständigen Hardware- oder Softwarekomponente, die mit einem größeren System verknüpft ist, annehmen. Zum Beispiel kann jedes Modul eine anwendungsspezifische integrierte Schaltung (ASIC), eine feldprogrammierbare Gateanordnung (FPGA), eine Schaltung, eine digitale logische Schaltung, eine analoge Schaltung, eine Kombination von diskreten Schaltungen, Gates, oder jede beliebige andere Art von Hardware oder Kombinationen davon aufweisen. Alternativ oder zusätzlich kann jedes Modul Speicherhardware aufweisen, wie etwa zum Beispiel einen Teil des Speichers 104, der Befehle umfasst, welche mit einem Prozessor ausführbar sind, um eines oder mehrere der Merkmale des Moduls auszuführen. Wenn ein beliebiges der Module den Teil des Speichers aufweist, der Befehle umfasst, die mit dem Prozessor ausführbar sind, kann das Modul den Prozessor aufweisen oder nicht aufweisen. Bei einigen Beispielen kann jedes Modul nur der Teil des Speichers 104 oder eines anderen physikalischen Speichers sein, der Befehle umfasst, die mit dem Prozessor ausführbar sind, um die Merkmale des entsprechenden Moduls auszuführen.
-
Die Steuerung 102 kann eine Drosselungsschaltung 112 aufweisen. Die Drosselungsschaltung 112 kann bestimmen, wann sich der Speicher in einem Drosselungsmodus befindet, und Parameter für den Drosselungsmodus abändern. Die Drosselungsschaltung 112 kann mit der Flash-Translation-Layer 138 gekoppelt oder ein Teil davon sein. Beispielhafte Drosselungsmechanismem sind in 8 veranschaulicht. 5 bis 7 veranschaulichen beispielhafte Ausführungsformen, bei denen die Drosselung in dem Temperaturkontext abgeändert werden kann. Insbesondere kann die Drosselungsschaltung 112 den Temperaturdrosselungsschwellenwert auf Basis der Speichergesundheit/-haltbarkeit/-verwendung abändern oder die TMM-Drosselung so abändern, dass sie von der Temperatur abhängt, wie nachstehend näher besprochen wird.
-
Unter erneuter Bezugnahme auf Module der Steuerung 102 verwaltet ein Puffermanager/eine Bussteuerung 114 Puffer in dem Direktzugriffsspeicher (RAM) 116, und steuert die interne Buszuteilung der Steuerung 102. Ein Nurlesespeicher (ROM) 118 speichert einen Systembootcode. Obwohl sie in 2A als von der Steuerung 102 getrennt angeordnet veranschaulicht sind, können eines oder beide aus dem RAM 116 und dem ROM 118 bei anderen Ausführungsformen in der Steuerung angeordnet sein. Bei noch anderen Ausführungsformen können sich Teile des RAM und des ROM sowohl innerhalb der Steuerung 102 als auch außerhalb der Steuerung befinden. Ferner können sich bei einigen Ausführungen die Steuerung 102, der RAM 116 und der ROM 118 auf gesonderten Halbleiterchips befinden.
-
Das Front-End-Modul 108 weist eine Host-Schnittstelle 120 und eine Physical-Layer-Interface (PHY) 122, die die elektrische Schnittstelle mit dem Host oder der Speichersteuerung der nächsten Ebene bereitstellen, auf. Die Wahl der Art der Host-Schnittstelle 120 kann von der Art des verwendeten Speichers abhängen. Beispiele für Host-Schnittstellen 120 beinhalten, aber ohne Beschränkung darauf, SATA, SATA Express, SAS, Fibre Channel, USB, PCIe und NVMe. Die Host-Schnittstelle 120 erleichtert typischerweise die Übertragung für Daten, Steuersignale, und Timingsignale.
-
Das Back-End-Modul 110 weist eine Fehlerkorrektursteuerungs(ECC)maschine 124 auf, die die von dem Host empfangenen Datenbytes codiert und die aus dem nichtflüchtigen Speicher gelesenen Datenbytes decodiert und hinsichtlich Fehlern korrigiert. Ein Befehlssequenzer 126 erzeugt Befehlssequenzen wie etwa Programmier- und Löschbefehlssequenzen, die zu dem nichtflüchtigen Speicherchip 104 gesendet werden sollen. Ein RAID(Redundant Array of Independent Drives)-Modul 128 verwaltet die Erzeugung der RAID-Parität und die Wiederherstellung von fehlerhaften Daten. Die RAID-Parität kann als zusätzliche Ebene des Integritätsschutzes für die Daten, die in das nichtflüchtige Speichersystem 100 geschrieben werden, verwendet werden. In manchen Fällen kann das RAID-Modul 128 ein Teil der EEC-Maschine 124 sein. Eine Speicherschnittstelle 130 stellt dem nichtflüchtigen Speicherchip 104 die Befehlssequenzen bereit und erhält von dem nichtflüchtigen Speicherchip 104 Statusinformationen. Bei einer Ausführungsform kann die Speicherschnittstelle 130 eine Schnittstelle mit doppelter Datenrate (DDR) wie etwa eine Toggle-Mode-200-, -400- oder -800-Schnittstelle sein. Eine Flash-Control-Layer 132 steuert den gesamten Betrieb des Back-End-Moduls 110.
-
Zusätzliche Komponenten des in 2A veranschaulichten Systems 100 beinhalten die Flash Translation Layer ("FTL") 138, die einen Abnutzungsausgleich der Speicherzellen des nichtflüchtigen Speicherchips 104 vornimmt. Das System 100 weist auch andere diskrete Komponenten 140 wie etwa externe elektrische Schnittstellen, einen externen RAM, Widerstände, Kondensatoren oder andere Komponenten, die mit der Steuerung 102 verknüpft werden können, auf. Bei alternativen Ausführungsformen sind eines oder mehrere aus der Physical-Layer-Interface 122, dem RAID-Modul 128 und der Pufferverwaltung/Bussteuerung 114 optionale Komponenten, die in der Steuerung 102 nicht erforderlich sind.
-
Die FTL 138 kann auch als Media-Management-Layer ("MML") bezeichnet werden. Die FTL 138 kann als Teil des Flash-Managements oder der Flash-Control-Layer 132 aufgenommen sein, der Flash-Fehler behandeln und eine Verknüpfung mit dem Host herstellen kann. Insbesondere kann die FTL eine Schaltung sein, die für die Interna des NAND-Managements verantwortlich ist. Insbesondere kann die FTL 138 Funktionalität oder einen Algorithmus in der Speichervorrichtungsfirmware aufweisen, die bzw. der Lesungen/Schreibungen von dem Host in Lesungen/Schreibungen in den Flash-Speicher 104 übersetzt. Die FTL 138 kann Befehle zur Ausführung erhalten (oder auf eine Warteschlange von Befehlen zugreifen) (z.B. Programmieren in den nichtflüchtigen Speicher 104 oder Lesen aus dem nichtflüchtigen Speicher 104). Durch das Zugreifen auf eine Warteschlange von Befehlen kann die FTL 138 optimal und leistungsfähig wählen, wann und wie Befehle aus der Warteschlange ausgeführt werden sollen. Bei einem Beispiel kann die FTL 138 Befehle gruppieren, um die Leistungsfähigkeit, mit der auf den nichtflüchtigen Speicher 104 zugegriffen wird, zu steigern. Bei einem Beispiel kann die FTL 138 Befehle wählen, um die Haltbarkeit und die Lebensdauer des nichtflüchtigen Speichers 104 zu erweitern.
-
2B ist ein Blockdiagramm, das beispielhafte Komponenten des nichtflüchtigen Speicherchips 104 ausführlicher veranschaulicht. Der nichtflüchtige Speicherchip 104 weist periphere Schaltungen 141 und eine nichtflüchtige Speicheranordnung 142 auf. Die nichtflüchtige Speicheranordnung 142 weist die nichtflüchtigen Speicherzellen auf, die verwendet werden, um Daten zu speichern, und in Ebenen angeordnet sein können. Bei einer Ausführungsform kann jeder nichtflüchtige Speicherchip 104 eine oder mehr Ebenen aufweisen. Die nichtflüchtigen Speicherzellen können alle beliebigen nichtflüchtigen Speicherzellen sein, einschließlich NAND-Flash-Speicherzellen und/oder NOR-Flash-Speicherzellen in einer zweidimensionalen und/oder dreidimensionalen Konfiguration. Die peripheren Schaltungen 141 weisen eine Zustandsmaschine 152 auf, die der Steuerung 102 Statusinformationen bereitstellt. Der nichtflüchtige Speicherchip 104 weist ferner einen Datencache 156 auf, der Daten zwischenspeichert. Beispielhafte periphere Schaltungen können Taktgeber, Pumpen, ESD, Stromnebenwiderstände, Stromsenken und/oder dichtgepackte Logikschaltungen aufweisen.
-
3 kann ein Teil von 1 sein oder eine alternative Ausführungsform veranschaulichen. 3 veranschaulicht eine Ausführungsform der Vorrichtungssteuerung 102, ihre internen Blöcke und ihre Wechselwirkungen. Der Host 212 sendet unter Verwendung einer physikalischen Schnittstelle, die den Host mit der Speichervorrichtungssteuerung 102 verbindet, Befehle an die Vorrichtungssteuerung 102. Für diese Schnittstelle sind in der Industrie viele Protokolle definiert, wie etwa Peripheral-Component-Interconnect-Express (PCIe), SATA usw. Die Host-Schnittstelle (MAC und PHY) 302 kann drei niedrige Protokollschichten (Transaktionsschicht, Datenverbindungsschicht und physikalische Schicht) ausführen. Die Verantwortlichkeit für die Host-Schnittstelle 302 kann darin liegen, sicherzustellen, dass Pakete zwischen dem Host 212 und der Speichervorrichtungssteuerung 102 ohne die in diesen Schichten definierten Fehler übertragen werden.
-
Der Befehlsparser 304 erhält die Tätigkeit wie auch die Administrator-Host-Befehle, analysiert sie und prüft die Richtigkeit der Host-Befehle. Er kann mit dem Warteschlangenmanager 306 zusammenwirken, um die Befehle in die passende Warteschlange zu reihen. Vor den Ausführungen können Host-Befehle bei dem Wartschlangenmanager 306 ausstehend sein. Der Warteschlangenmanager kann einen Entscheidungsmechanismus aufweisen, um Befehlen, die durch den Befehlsausführer 308 ausgeführt werden sollen, Priorität zu verleihen. Die FTL 138 kann die Befehle in der Warteschlange optimieren (Priorität verleihen und gruppieren) oder durch Verzögern von Befehlen oder Ändern anderer Speicherparameter, die nicht mit der Befehlswarteschlange in Zusammenhang stehen, eine Drosselung ausführen. Der Befehlsparser 304 oder der Warteschlangenmanager 306 kann für das Steuern des Datenstroms zwischen der Steuerung und der Vorrichtung verantwortlich sein, indem er Anforderungen oder Befehle in der Warteschlange in eine Reihenfolge bringt. Die Reihenfolge kann auf der Priorität der Anforderung, der Verfügbarkeit von Ressourcen zur Handhabung der Anforderung, einem Adressenbedarf für die Anforderung, dem Alter der Anforderung, der Art der Anforderung (z.B. Lesen oder Schreiben) oder der Zugriffsgeschichte des Anforderers beruhen.
-
Eine Befehlswarteschlange kann eine Warteschlange entweder in der Reihenfolge der Priorität, auf First-in-First-out(FIFO)-Basis oder in jeder beliebigen anderen Reihenfolge sein, um eine Verzögerung der Befehlsausführung (z.B. während der Drosselung) zu ermöglichen. Anstatt auf die Ausführung jedes Befehls zu warten, bevor der nächste gesendet wird, setzt das Programm einfach die Befehle in die Warteschlange und kann andere Prozesse durchführen, während die Warteschlange ausgeführt wird. Eine Warteschlange kann für die Drosselung verwendet werden, um den Datenstrom zwischen der Steuerung und der Vorrichtung zu steuern. Befehle können in die Befehlswarteschlange gesetzt werden und durch den Warteschlangenmanager 306 in eine Reihenfolge gebracht werden. Die Reihenfolge kann auf der Priorität der Anforderung, der Verfügbarkeit von Ressourcen zur Handhabung der Anforderung, einem Adressenbedarf für die Anforderung, dem Alter der Anforderung oder der Zugriffsgeschichte des Anforderers beruhen. Die Befehlswarteschlange kann für die FTL 138 zur Ausführung erreichbar sein, was jedoch nicht in 3 gezeigt ist.
-
Die Host-Schnittstelle 302 kann mit einer Host-Schicht 303 zum Erhalt von Befehlen von dem Host 212 gekoppelt sein. Der Programmausführer 308 kann für die Befehlsauswahl und die Ausführung verantwortlich sein. Über anhängige Befehle kann durch den Warteschlangenmanager 306 durch Senden von Erfassungs- und Übertragungsanforderungen an das Flash-Schnittstellen-Modul (flash interface module, "FIM") 110 entschieden werden, um den nächsten Befehl zur Ausführung zu wählen. Bei einer Ausführungsform kann das FIM 110 die Erfassungs/Übertragungs- oder Programmiertätigkeiten zu dem/in den Flash 104 erzeugen. Das FIM 110 steht durch Senden von Flash-Befehlen mit dem Flash-Speicher 104 in Wechselwirkung.
-
Das Flash-Management von der Flash-Transformation-Layer (FTL) 138 kann für interne Speicherverwaltungstätigkeiten wie etwa die Adressenübersetzung verantwortlich sein. Die FTL 138 kann auch als Media-Management-Layer (MML) bezeichnet werden. Die Vorrichtungssteuerung kann einen direkten "Lese/Schreib"-Speicherzugang (direct memory access, "DMA") 310 aufweisen, der für das Übertragen von Daten zwischen dem Host und der Vorrichtung verantwortlich sein kann. Der Befehlsparser 304, der Warteschlangemanager 306, das Flash-Management 138 und der Befehlsausführer 308 können für die Behandlung des Steuerbefehls in der Vorrichtung verantwortlich sein, während der Lese/Schreib-DMA 310 den Datenpfad in der Vorrichtung handhabt. Die Vorrichtungsfirmware 124 kann die Funktionalität dieser Logik steuern und verwalten. In der Initialisierungsphase kann die Firmware die Vorrichtungssteuerung 102 konfigurieren. Während des Betriebs steuert die Firmware 124 die Logik und verwaltet den Flash-Speicher 104. Die Firmware 124 kann auch die Befehlsanalyse sowie Warteschlangenspeicherung und -zugriff unterstützen.
-
4 ist ein Diagramm, das eine beispielhafte Überkreuztemperatur(X-temp)situation veranschaulicht. Die in 1 bis 3 beschriebene Speichervorrichtung kann ihre Drosselungsmechanismen abändern, um mit der X-temp umzugehen. 4 veranschaulicht die Auswirkungen der X-temp. Die x-Achse veranschaulicht den Hot Count oder die Anzahl der Programmier/Lösch(PE)-Zyklen. Die y-Achse veranschaulicht die Bitfehlerrate (BER). Im Allgemeinen nimmt die BER-Rate mit der Zunahme des PE-Zählwerts zu. Es kann ein Schwellenwert 402 für die BER bestehen, der annehmbar oder korrigierbar ist. Je nach dem Wert der X-temp ("TempX") kann der Schwellenwert 402 bei unterschiedlichen PE-Zyklus-Zählungen erreicht werden. Die größte X-temp zeigt einen X-temp-Wert von 100. Die nächste X-temp zeigt einen X-temp-Wert von 90. Die kleinste X-temp zeigt einen X-temp-Wert von 80.
-
4 zeigt, dass die BER-Rate den Schwellenwert 402 bei höheren Temperaturen rascher (hinsichtlich der PE-Zyklen) erreicht. Die höchste X-temp von 100 erreicht den BER-Schwellenwert 402 bei 404. Die mittlere X-temp von 90 erreicht den BER-Schwellwert 402 bei 406, wobei es sich um mehr Zyklen als für den höchsten X-temp handelt. Schließlich erreicht die niedrigste X-temp von 80 den BER-Schwellenwert 402 bei 408, wobei es sich um eine größere Anzahl von Zyklen als bei der hohen und der mittleren X-temp handelt. Entsprechend sollte die Drosselung der PE-Zyklus-Zählung auch von der Temperatur abhängen.
-
4 beweist, dass die BER sowohl von den PE-Zyklen als auch von der Temperatur abhängt. Wenn eine Temperaturdrosselung überlegt wird, sollte das Timing der Temperaturdrosselung von den PE-Zyklen abhängen. Insbesondere sollte der Temperaturdrosselungsschwellenwert in Abhängigkeit von der Speichergesundheit oder der Speicherverwendung festgelegt werden. 4 veranschaulicht PE-Zyklen als ein Beispiel für die Speicherverwendung. Für einen neuen Block mit weniger als einer Anzahl von Zyklen bei 404 könnte der Temperaturdrosselungsschwellenwert höher festgelegt werden (z.B. X-temp von 100). Für einen Block mit einer höheren PE-Zyklus-Zählung bei 408 sollte der Temperaturschwellenwert niedriger sein (z.B. X-temp von 80), da sowohl die X-temp von 100 bei 404 als auch die X-temp von 90 bei 406 bereits den BER-Schwellenwert überschritten haben, wenn die PE-Zyklus-Zählung 406 passiert.
-
5 ist ein Ablaufdiagramm zur Abwandlung der Drosselung auf Basis der Speichergesundheit/-verwendung und der Temperatur. In Block 502 wird ein Gesundheits- oder Verwendungswert erhalten. Wie in 4 gezeigt ist der Hot Count (oder sind die PE-Zyklen) ein Beispiel für die Verwendung. Es kann andere Beispiele für Speichergesundheitsmessungen geben. In Block 504 wird die Vorrichtungstemperatur erhalten. Die Temperatur kann durch einen Sensor, der Teil des Speichers ist, gemessen werden. Bei anderen Ausführungsformen kann die Temperatur durch andere Quellen erhalten oder geschätzt werden. In Block 506 kann sowohl der Verwendungs-/Gesundheitswert als auch der Temperaturwert mit Kriterien vergleichen werden. Wenn die Kriterien nicht erfüllt werden, wird der Prozess wiederholt. Wenn die Kriterien erfüllt werden, kann in Block 508 eine Drosselung ausgeführt werden. Insbesondere können bestimmte Parameter auf Basis des Verwendungs-/Gesundheitswerts und der Temperatur eingestellt werden. Die Kriterien können wie in 6 veranschaulicht ein Verwendungs-/Gesundheitswert oder ein Prüfparameter sein oder wie in 7 veranschaulicht ein Temperaturschwellenwert sein.
-
6 ist ein Ablaufdiagramm zur Abwandlung einer Prüfmodusmatrix (TMM) auf Basis der Temperatur. In Block
602 wird der Speicherverwendungs- oder Speichergesundheitswert bestimmt. Dieser Speichergesundheitswert oder die Speicherverwendung wird in Block
604 mit einem Schwellenwert verglichen. Wenn die bestimmte Speichergesundheit oder Speicherverwendung in Block
604 schlechter als der Schwellenwert ist, wird in Block
606 die Vorrichtungstemperatur erhalten. Dann wird in Block
608 die Prüfmodusmatrix (TMM) analysiert. Die TMM wird so reguliert oder abgeändert, dass sie wie in der nachstehenden Tabelle 1 gezeigt von der Temperatur abhängt:
| 87+°C | –70°C–87° | 50°C–87°C | < 50°C–87°C |
Temperatur | Verwendung | (Programmier/Lösch-Zyklen oder Hot Count) | | |
frisch–500 | 501–1000 | 1K–1.5000 | 1.5000–2000 |
70–85 C | Standard (keine Drosselung) | Drosselung Stufe 1 | Drosselung Stufe 2 | Drosselung Stufe 3 |
49–69 C | Standard (keine Drosselung) | Standard (keine Drosselung) | Drosselung Stufe 1 | Drosselung Stufe 2 |
45–48 C | Standard (keine Drosselung) | Standard (keine Drosselung) | Standard (keine Drosselung) | Drosselung Stufe 1 |
25–44 C | Standard (keine Drosselung) | Standard (keine Drosselung) | Standard (keine Drosselung) | Drosselung Stufe 1 |
10–24 C | Standard (keine Drosselung) | Standard (keine Drosselung) | Drosselung Stufe 1 | Drosselung Stufe 2 |
–2–9 C | Standard (keine Drosselung) | Drosselung Stufe 1 | Drosselung Stufe 2 | Drosselung Stufe 3 |
Tabelle 1: von der Temperatur abhängige Prüfmodusmatrix (TMM)
-
Tabelle 1 ist lediglich für eine Ausführungsform einer TMM beispielhaft. Tabelle 1 veranschaulicht, dass die Drosselung sowohl von der Verwendung als auch der Temperatur abhängt. Es kann keine Drosselung vorliegen oder es können verschiedene Stufen der Drosselung vorliegen. Wie in Tabelle 1 gezeigt können drei Stufen der Drosselung vorliegen. Die Drosselung der Stufe 1 ist eine feine Drosselung (kleine Änderung der Leistung), während ansteigende Stufen zu einer vermehrten Drosselung (größeren Verringerungen der Leistung) führen. Zum Beispiel kann die Drosselung der Stufe 1 eine 5 bis 10%ige Verringerung der Leistung sein, die Drosselung der Stufe 2 eine 10 bis 15%ige Verringerung der Leistung sein, und die Drosselung der Stufe 3 eine 15 bis 25%ige Verringerung der Leistung sein. Diese Stufen sind lediglich beispielhaft, und es können mehr oder weniger Stufen mit unterschiedlichen Verringerungen der Leistung vorliegen. Die TMM veranschaulicht, dass die Verwendung und die Temperatur bestimmen, wann und wie viel gedrosselt wird. Die ganz linke Spalte stellt die Temperaturklassen dar, die mit der Verwendung (PE-Zyklen oder Hot Count) gezeigt sind. Die TMM berücksichtigt niedrige Temperaturen und hohe Temperaturen. Die Drosselungsstufen werden auf Basis sowohl der Verwendung als auch der Temperaturen bestimmt. Obwohl keine Darstellung erfolgt, kann sich die Drosselung bei niedrigen Temperaturen von der Drosselung bei hohen Temperaturen unterscheiden. Entsprechend kann bei diesem Beispiel jede der drei Stufen über eine Niedertemperatur- und eine Hochtemperaturversion verfügen, so dass sechs Drosselungsstufen vorliegen.
-
Die TMM kann Prüfparameter umfassen. Tabelle 1 veranschaulicht die Verwendung als Prüfparameter, doch können die Speichergesundheit, das Alter oder die Haltbarkeit andere Beispiele für Prüfparameter sein. Durch das Aufnehmen der Temperaturabhängigkeit in die TMM kann die Drosselung optimiert und effizienter gestaltet werden. Die Drosselung kann Einstellungen von temperaturempfindlichen Parametern wie etwa den Drosselungsparametern in 8 beinhalten.
-
7 ist ein Ablaufdiagramm eines Temperaturdrosselungsschwellenwerts, der von der Speichergesundheit/-verwendung abhängt. In Block
702 wird die Speichervorrichtungsverwendung bestimmt. Bei einer Ausführungsform kann es sich bei der Verwendung um den Hot Count oder die Programmier/Lösch(PE)-Zyklen handeln. Auf Basis der PE-Zyklen kann in Block
704 eine entsprechende adaptive Drosseltemperatur vorliegen. Die adaptive Drosseltemperatur kann als Schwellenwert bezeichnet werden und ist eine Temperatur, bei der die Vorrichtung als Versuch zur Abkühlung und Fehlervermeidung mit einer Drosselung beginnt. Block
706 veranschaulicht eine beispielhafte Tabelle von PE-Zyklen mit ihren entsprechenden Drosseltemperaturen. Block
706 ist lediglich eine Ausführungsform und veranschaulicht, dass die Drosseltemperatur wie in Tabelle 2 abnimmt, wenn die PE-Zyklen zunehmen:
Programmier/Lösch(PE)-Zyklen | Drosseltemperatur |
< 100 | 70° C |
< 350 | 65° C |
< 700 | 60° C |
< 1000 | 55° C |
Tabelle 2: Adaptive Temperaturdrosselung auf Basis der Verwendung (z.B. Hot Count).
-
Tabelle 2 und Block 706 veranschaulichen, dass ein frischerer Speicher (z.B. < 100 PE-Zyklen) nicht zu drosseln braucht, bis der Drosseltemperaturschwellenwert hoch ist (z.B. 70 °C). Ein älterer Speicher oder ein Speicher mit einer höheren Verwendung (z.B. 1000 PE-Zyklen) wird bei einem niedrigeren Drosseltemperaturschwellenwert (z.B. 55 °C) drosseln. Mit anderen Worten kann für einen neuen Speicher ein hoher Drosseltemperaturschwellenwert verwendet werden, doch sollte der Drosseltemperaturschwellenwert mit zunehmender Verwendung abnehmen, um Fehler zu minimieren, während auch die Leistung optimiert wird (z.B. durch eine verringernde Drosselung).
-
Tabelle 2 und Block 706 werden verwendet, um den passenden Drosseltemperaturschwellenwert in Block 708 auf Basis der in Block 702 bestimmten PE-Zyklen zu bestimmen. In Block 710 wird die Temperatur der Vorrichtung bestimmt. Wenn die Temperatur der Vorrichtung in Block 712 niedriger als der bestimmte Drosseltemperaturschwellenwert ist, wird der Prozess bei Block 702 fortgesetzt. Doch wenn die Temperatur der Vorrichtung in Block 712 höher als der bestimmte Drosseltemperaturschwellenwert ist, wird in Block 714 eine Drosselung ausgeführt. 8 veranschaulicht beispielhafte Ausführungsformen der Drosselung. Der in 7 veranschaulichte Prozess zur adaptiven Einstellung des Drosseltemperaturschwellenwerts kann die Leistung optimieren, während dennoch eine Drosselung gestattet wird, um die Temperatur zu steuern und Fehler zu verringern.
-
8 ist ein Diagramm, das beispielhafte Drosselungsparameter veranschaulicht. Die Drosselung kann Einstellungen beliebiger temperaturempfindlicher Parameter beinhalten und kann auf NAND-Parameter bezogen werden, wenn sie auf einen NAND-Speicher angewendet wird. Die Drosselungsparameter 802 sind Merkmale, die eingestellt werden können, wenn der Drosselungsmodus besteht. Wie beschrieben kann die Speichervorrichtung aus verschiedenen Gründen (z.B. Stromverbrauch, Temperatur, Haltbarkeit usw.) gedrosselt werden, und sind die Drosselungsparameter 802 beispielhafte Merkmale, die bei einer Drosselung geändert werden können.
-
Die Drosselung kann Einstellungen an der Programmierspannung 804 beinhalten. Die Programmierspannung kann als Vpass bezeichnet werden. Zudem kann auch die Programmierbreite oder die Verteilung der Spannung eingestellt werden. Die Spannungsverteilung kann enger oder weiter programmiert werden. Die Drosselung kann auch Einstellungen an der Programmiergeschwindigkeit 806 beinhalten. Die Programmiergeschwindigkeit 806 kann auch das Programmiertiming und andere Programmiereinstellungen (z.B. die Programmierimpulsbreite oder die Programmierschrittgröße) beinhalten. Als Teil der Drosselung kann eine langsamere Programmierung verwendet werden.
-
Die Drosselung kann Einstellungen an der Befehlsbehandlung 808 beinhalten. Die Befehle, die an der Speichervorrichtung erhalten werden (z.B. in einer Warteschlange) können während des Drosselns langsamer behandelt werden. Während des Drosselns kann die Warteschlange verzögert werden oder können zusätzliche Befehle aufgenommen werden. Die Befehlsbehandlung 808 kann das Drosseln bestimmter Befehle oder Arten von Befehlen beinhalten. Die Drosselung von Befehlsarten kann das Ändern eines segmentierten oder fortlaufenden Befehls beinhalten. Dies kann sowohl für Programmier- als auch für Löschbefehle gelten. Zum Beispiel können unterteilte Befehle eine Reihe von zunehmenden Programmierungen beinhalten, die auf die zu erreichende Spannung zugehen. Dies kann abgestuft werden, bis der Schwellenwert erreicht wird. Während der Drosselung können die Segmentanzahlen (z.B. die Spannungserhöhungen) abgeändert werden. Bei der Drosselung kann eine etwas geringere Spannung angewendet werden, die sich langsamer in einen Programmierzustand bewegt. Die Befehlsbehandlung 808 kann eine Einstellung der Befehlsverifikation beinhalten. Für ein fortlaufendes Programm kann der NAND die Segmente festlegen und prüfen und nachsehen, ob sie programmiert werden. Dies kann das Ändern interner Einstellungen, um mehr Verifikationen vorzunehmen oder sanftere Programmierungen/Löschungen vorzunehmen, beinhalten. Eine derartige Änderung interner Schritte, dass sie langsamer programmieren, kann eine andere Verifikation beinhalten.
-
Befehlseinstellungen können ein anderes Beispiel für die Befehlsbehandlung 808 darstellen. Die Geschwindigkeits- oder Sicherheitsgrenzen des Speichers können abgeändert werden. Der NAND-Chip verwendet interne Schaltungen, um Schritte anzuwenden und den nichtflüchtigen Zustand zunehmend zwischen gelöschten oder unterschiedlichen Bitwerten zu bewegen. Dies kann sowohl für Löschungen als auch für Programmierungen der Fall sein. Die Schritte zur Vornahme dieser Zustandsbewegungen können so abgeändert werden, dass die Schritte zahlreicher, mit unterschiedlichen Dauern, unterschiedlichen Deltas im angelegten Spannungspegel, unterschiedlichen Anstiegsraten und Einschwingzeiten, unterschiedlichen Ausschlussspannungen an peripheren Zellen, einer unterschiedlichen Reihung von Vorgängen usw. gestaltet werden. Jeder oder alle diese Punkte können sich ändern. Für einige davon wurde eine Korrelation mit der Leistung, der Zelllebensdauerverschlechterung, der Haltbarkeit, dem Stromverbrauch, der Bitfehlerrate (BER) bei zukünftigen Lesungen, der Beständigkeit gegenüber Lesestörungen, dem Datenhalt bei verschiedenen Temperaturen usw. gefunden. Durch Anwenden der Kenntnis der Drosselungsart und der Kennzeichnungsarbeit auf das Obige können wir ein Verhalten für den Standardablauf, eine andere Verhaltenseinstellung für einen temperaturgedrosselten Ablauf, und ein unterschiedliches Verhalten für die Leistungsdrosselung anwählen.
-
Die Chipparameter 810 können eine Anzahl von Parametern im Zusammenhang mit dem NAND-Chip beinhalten. Im Drosselmodus kann zum Beispiel die Taktrate verringert werden. Insbesondere kann die Taktrate verlangsamt werden. Es kann sich die Schaltungsverwendung verringern, da die Vorrichtung mit jedem Einschalten Strom verbrauchen kann. Je langsamer die Taktrate ist, desto geringer wird dieser Strom sein. Er wird möglicherweise niemals verschwinden, doch kann eine niedrigere Taktrate den Blindstrom verringern. Dies ist eine Einsparung hinsichtlich der Wärmeleistung, die zerstreut werden muss, und kann auch eine Einsprung sein, wenn eine Stromdeckelung besteht, wie etwa, wenn eine Gesamtverwendungsgrenze für die Speichervorrichtung besteht. Mit anderen Worten kann die Verringerung der Vorrichtungstaktrate sowohl im Leerlauf, wenn der NAND-Speicher nicht einmal verwendet wird, als auch bei tatsächlicher Verwendung eines Befehls wirksam sein. Da die Befehle langsamer werden, verringert dies den verbrauchten Strom, was dazu führt, dass durch die Aktivität in dem NAND eine niedrigere Temperatur erzeugt wird. Bei einer anderen Ausführungsform kann der Chipparameter 810 als anderen Drosselungsmechanismus das Abschalten von SRAM-Puffern beinhalten. Alternativ kann als Teil der Drosselung die Betriebsspannung des Chips verändert werden. Die Betriebsversorgungsspannung kann auf Leiterplattenebene festgelegt werden. Das Verringern der Spannung kann den Strom während der Drosselung verringern. Als Ergebnis können mehr Verifikationen oder mehr Segmente durchgeführt werden, da für den Chip eine verringerte Fähigkeit besteht, Strom aufzunehmen.
-
Die Flash-Kommunikationsbusparameter 812 können (ein) andere(s) Beispiel(e) für (einen) Drosselungsparameter 802, der/die für die Drosselung eingestellt wird/werden, darstellen. Bei einer Ausführungsform können die Kommunikationsbusparameter 812 unterschiedliche Raten oder Busgeschwindigkeiten für Daten und Befehle aufweisen. Der Flash-Bus kann einen Kommunikationspfad zwischen dem Flash-Schnittstellen-Modul und dem Flash beinhalten. Es kann eine Taktrate damit verbunden sein, und dies kann eine Stromersparnis in der SSD darstellen. Es kann sich um eine einmalige Änderung handeln, die bestimmt, dass die Flash-Busgeschwindigkeit so verringert wird, dass die Kommunikation langsamer erfolgt. Bei einer alternativen Ausführungsform kann es sein, dass keine einmalige globale Einstellung für die Drosselung vorliegt (so dass der Drosselungsparameter während der Drosselung geändert wird). Es kann eine Drosselung bestehen, die auf einer Befehlsbasis beruht, anstatt eine globale Einstellung zu sein. Die Drosselung kann für einen bestimmten Zeitraum erfolgen und/oder für einen bestimmten Kanal und/oder einen bestimmten Chip, der spezifisch gedrosselt wird, spezifisch sein. Die Flash-Busdatenübertragungsgröße kann einen anderen Flash-Kommunikationsbusparameter 812 darstellen, der für die Drosselung eingestellt wird. Kleine Datenübertragungen bedeuten, dass der Chip damit beschäftigt ist, mehr Datenpakete zu der Steuerung zu übertragen. Dies verbraucht mehr Zeit und verzögert zukünftige Aktivitäten für diesen NAND-Chip.
-
Anstelle einer Beschränkung von Befehlen können funktionelle Stücke der Steuerung abgeschaltet werden. Da in dem NAND-Speicher bedeutende Wärme- und Stromanforderungen bestehen, kann das Abschalten von Hardware in der Steuerung ein indirektes Verfahren zur Verringerung der NAND-Aktivität darstellen. Doch nicht alle Steuerungen verfügen über verfeinerte Stromabschaltefähigkeiten an allen Hardwarestücken. Die Antriebsleistungsfähigkeit kann abhängig von dem Einfluss der Hardewareabschaltung verringert werden. Folglich kann es sein, dass es nicht zu einer wirksamen Drosselung der NAND-Speicheraktivität kommt, wenn das bestimmte Hardwarestück keinen Flaschenhals in der gegenwärtigen Antriebsauslastung darstellt (die Antriebsleistungsfähigkeit nicht trifft).
-
Bei einer Ausführungsform kann die Ausführung der Drosselung beinhalten, dass die FTL die Sequenz der Ereignisse des Flash-Schnittstellen-Moduls, die dieses der Reihe nach durchführen wird, um eine Programmierung oder eine Lesung auszuführen, verändert. Dies kann eine einmalige globale Einstellung sein, so dass die FTL einen einmaligen Befehl geben wird und den Befehl zu dem Flash-Schnittstellen-Modul senden wird. Das Flash-Schnittstellen-Modul kann ihn zu dem Flash verteilen und eine Änderung an einem NAND-Parameter (z.B. eine niedrigere NAND-Taktrate) verlangen. Er kann für niedrigere Stromzustände oder zum Abschalten peripherer nicht wesentlicher Schaltungen in dem NAND wie etwa stärker bestromter Speicherpuffer verwendet werden. Es kann sich um eine Beschneidungseinstellung (d.h., eine Einstellung in jedem der Chips) handeln. Es kann eine derartige Reihung erfolgen, dass der Flash langsamer läuft, wenn nicht gedrosselt wird. Es kann ein neuer Befehl hinsichtlich der Taktraten gesendet werden. Bei einer alternativen Ausführungsform kann die Drosselung für einen Kanal oder einen Chip spezifisch sein, so dass nur ein Teil des NAND gedrosselt wird.
-
9 ist eine Darstellung eines beispielhaften dreidimensionalen (3D) Speicheraufbaus. Die Drosselung und die temperaturabhängigen Veränderungen, die hier beschrieben sind, können in verschiedenen Arten von Speichern wie etwa einem Charge-Trapping(CT)-Speicher oder in dem in 9 veranschaulichten 3D-Speicher benutzt werden. 9 ist eine Darstellung eines beispielhaften dreidimensionalen (3D) Speicheraufbaus. 9 veranschaulicht einen beispielhaften 3D-NAND-Flash mit Bit-Cost-Scaling (BiCS). Die Quellenzeilen und die Bitzeilen sind in Bezug auf 10 näher beschrieben und dargestellt. Der Flash-Speicher, der in diesem Speichersystem verwendet wird, kann ein Flash-Speicher mit einer 3D-NAND-Architektur sein, wobei die Programmierung durch Fowler-Nordheim-Tunnelung des Elektrons in die Charge-Trapping-Schicht (charge trapping layer, CTL) erreicht wird. Das Löschen kann durch Verwendung einer Lochinjektion in die CTL zur Neutralisierung der Elektronen über einen physikalischen Mechanismus wie etwa einen gateinduzierten Drainleckstrom (GIDL) erfolgen. 9 ist ein beispielhafter 3D-Aufbau, wobei jede Zelle durch einen Speichertransistor dargestellt ist, wodurch senkrecht eine Speichersäule gebildet wird (z.B. 48 Wortzeilen). Die Wortzeilen (WL), Bitzeilen (BL) und Strangnummern sind in 9 gezeigt. Es sind vier beispielhafte Stränge gezeigt. Es kann ein Memory Hole (in einer NAND-Säule) vorhanden sein, das einen Memory-Hole-Kontakt aufweist. Eine beispielhafte Wortzeile (die logische Wortzeile LWL 185) ist zusammen mit einer beispielhaften physikalischen Wortzeile (PWL 46) dargestellt. Obwohl sie für 3D-Speicheranwendungen von Bedeutung sind, können die adaptive Temperaturdrosselung und die TMM-Temperaturabhängigkeit für andere Aufbauten einschließlich eines 2D-Flash-Speichers mit Charge-Trapping-Dielektrikum und Tunnelungs-Dielektrikum von Bedeutung sein. Insbesondere kann ein Charge-Trapping-Dielektrikums-Speicher 3D oder 2D sein.
-
10 ist eine beispielhafte physikalische Speicherorganisation eines Speicherblocks. 10 veranschaulicht eine zum Beispiel in der NAND-Konfiguration organisierte Seite von Speicherzellen, die parallel erfasst oder programmiert wird. Bei einer Ausführungsform veranschaulicht 10 einen der Stränge einer 3D-NAND-Architektur, wobei jede Wortzeile mehrere Stränge (entweder vor oder hinter dem Strang in 10) überspannen kann. In dem beispielhaften Speicher ist eine Bank von NAND-Ketten gezeigt. Eine Seite kann jede beliebige Gruppe von Speicherzellen sein, die in der Lage sind, parallel erfasst oder programmiert zu werden. Die Seite wird durch die Steuergates der Zellen der Seite, die gemeinsam an eine Wortzeile angeschlossen sind, aktiviert, und jede Zelle ist durch eine Erfassungsschaltung, die über eine Bitzeile (Bitzeilen BL0 bis BLm) zugänglich ist, erreichbar. Wenn als Beispiel die Seite von Zellen jeweils erfasst oder programmiert wird, wird jeweils eine Erfassungsspannung oder eine Programmierspannung zusammen mit passenden Spannungen auf den Bitzeilen an eine gemeinsame Wortzeile (z.B. WL2) angelegt. Ein Select-Gate-Drain (SGD) ist zu einem Decodiergate wie etwa einer Select-Gate-Source (SGS) entgegengesetzt gezeigt. SGS kann auch als Sourcegate oder Source bezeichnet werden, während SGD als das Draingate oder der Drain bezeichnet werden kann. Direkt neben den Source/Draingates können sich Dummy-Wortzeilen befinden, die als Puffer wirken, um die Source/Draingates von den normalen Wortzeilen zu trennen und die normalen Wortzeilen vor möglichen Schäden zu schützen.
-
Die Speicherstruktur kann einen Charge-Trapping(CT)- oder einen Floating-Gate-Aufbau benutzen. Bei einer Ausführungsform kann es sich bei der Charge-Trapping-Schicht um ein Dielektrikum wie Siliziumnitrid, Magnesiumoxid oder einen anderen Isolator, der ausreichend porös ist, damit in den Poren Elektronen gefangen werden, handeln. Das Siliziumnitrid kann ein Film sein, der Elektronen speichert. Das CT kann einen SONOS(Halbleiter-Oxid-Nitrid-Oxid-Halbleiter)-Kondensator- oder einen MONOS(Metall-Oxid-Nitrid-Oxide-Halbleiter)-Kondensatoraufbau verwenden, wobei die Information in Ladungsfallen in der dielektrischen Schicht gespeichert wird. Das CT kann auch für entweder einen nichtflüchtigen NOR- oder einen NAND-Flash-Speicher verwendet werden. Zwischen einem Steuergate und einem Kanal kann eine variable Ladung vorhanden sein, um eine Schwellenspannung eines Transistors zu ändern. Die CT-Schicht kann ein Isolator sein, der eine verbesserte Haltbarkeit bereitstellt. Die Programmierung der CT-Schicht kann eine Elektronenbewegung auf die CT-Schicht durch eine Injektion heißer Elektronen (hot electron injection, HEI) oder eine Injektion heißer Ladungsträger in den Kanal beinhalten, wobei sich zwischen dem Steuergate eine hohe Spannung befindet und sich an der Source und dem Drain eine mittlere Spannung befindet, und ein Strom von der Source zu dem Drain induziert wird. Bei einer anderen Ausführungsform kann die Fowler-Nordheim-Tunnelung (FNT) eine Alternative darstellen, wenn sich an dem Steuergate eine hohe Spannung befindet und sich an dem Kanal des Speichertransistors eine niedrige Spannung befindet. Elektronen werden durch die Vorspannungsbedingungen in die CT-Schicht injiziert oder getunnelt. Die Injektion heißer Löcher kann benutzt werden, um eine Ladung aus der CT-Schicht zu beseitigen. Mit anderen Worten kann das Hinzufügen von Löchern (oder einer positiven Ladung aufgrund eines Fehlens von Elektronen) zum Löschen verwendet werden.
-
Die Halbleiterspeicherelemente, die sich in und/oder über einem Substrat befinden, können in zwei oder drei Dimensionen angeordnet sein, wie etwa einem zweidimensionalen Speicheraufbau oder einem dreidimensionalen Speicheraufbau. Bei einem zweidimensionalen Speicheraufbau sind die Halbleiterspeicherelemente in einer einzelnen Ebene oder einer einzelnen Speichervorrichtungsebene angeordnet. Typischerweise sind Speicherelemente bei einem zweidimensionalen Speicheraufbau in einer Ebene (z.B. einer x-z-Richtungsebene) angeordnet, die sich im Wesentlichen parallel zu einer Hauptfläche eines die Speicherelemente tragenden Substrats erstreckt. Das Substrat kann ein Wafer sein, über oder in dem die Schicht der Speicherelemente gebildet ist, oder kann ein Trägersubstrat sein, dass an den Speicherelementen angebracht wird, nachdem diese gebildet wurden. Als nichtbeschränkendes Beispiel kann das Substrat einen Halbleiter wie etwa Silizium enthalten.
-
Die Speicherelemente können in der einzelnen Speichervorrichtungsebene in einer geordneten Anordnung wie etwa in mehreren Reihen und/oder Säulen angeordnet sein. Die Speicherelemente können jedoch in nichtregelmäßigen oder nicht orthogonalen Konfigurationen angeordnet sein. Die Speicherelemente können jeweils zwei oder mehr Elektroden oder Kontaktzeilen wie etwa Bitzeilen und Wortzeilen aufweisen.
-
Eine dreidimensionale Speicheranordnung ist so angeordnet, dass Speicherelemente mehrere Ebenen oder mehrere Speichervorrichtungsebenen belegen, wodurch ein Aufbau in drei Dimensionen (d.h., in der x-, der y- und der z-Richtung, wobei die y-Richtung im Wesentlichen senkrecht zu der Hauptfläche des Substrats verläuft, während die x- und die z-Richtung im Wesentlichen parallel dazu verlaufen) gebildet wird. Als nichtbeschränkendes Beispiel kann ein dreidimensionaler Speicheraufbau senkrecht als Stapel von mehreren zweidimensionalen Speichervorrichtungsebenen angeordnet sein. Als anderes nichtbeschränkendes Beispiel kann eine dreidimensionale Speicheranordnung als mehrere senkrechte Säulen (z.B. Säulen, die sich im Wesentlichen senkrecht zu der Hauptfläche des Substrats, d.h., in der y-Richtung erstrecken) angeordnet sein, wobei jede Säule in jeder Säule mehrere Speicherelemente aufweisen kann. Die Säulen können in einer zweidimensionalen Konfiguration, z.B. in einer x-z-Ebene, angeordnet sein, was zu einer dreidimensionalen Anordnung von Speicherelementen mit Elementen in mehreren senkrecht gestapelten Speicherebenen führt. Andere Konfigurationen von Speicherelementen in drei Dimensionen können ebenfalls eine dreidimensionale Speicheranordnung bilden.
-
Als nichtbeschränkendes Beispiel können die Speicherelemente in einer dreidimensionalen NAND-Anordnung so miteinander gekoppelt sein, dass sie einen NAND-Strang innerhalb einer einzelnen waagerechten (z.B. x-z-)Speichervorrichtungsebene bilden. Alternativ können die Speicherelemente so miteinander gekoppelt sein, dass sie einen senkrechten NAND-Strang bilden, der mehrere waagerechte Speichervorrichtungsebenen quert. Es sind andere dreidimensionale Konfigurationen vorstellbar, bei denen einige NAND-Stränge Speicherelemente in einer einzelnen Speicherebene enthalten, während andere Stränge Speicherelemente enthalten, die mehrere Speichervorrichtungsebenen überspannen. Dreidimensionale Speicheranordnungen können auch in einer NOR-Konfiguration und in einer ReRAM-, PCM- oder STT-MRAM-Konfiguration gestaltet werden.
-
Typischerweise sind in einer monolithischen dreidimensionalen Speicheranordnung eine oder mehrere Speichervorrichtungsebenen über einem einzelnen Substrat gebildet. Optional kann die monolithische dreidimensionale Speicheranordnung auch eine oder mehrere Speicherschichten wenigstens teilweise in dem einzelnen Substrat aufweisen. Als nichtbeschränkendes Beispiel kann das Substrat einen Halbleiter wie etwa Silizium beinhalten. In einer monolithischen dreidimensionalen Anordnung sind die Schichten, die jede Speichervorrichtungsebene der Anordnung bilden, typischerweise auf den Schichten der darunter liegenden Speichervorrichtungsebenen der Anordnung gebildet. Doch Schichten von benachbarten Speichervorrichtungsebenen einer monolithischen dreidimensionalen Speicheranordnung können gemeinsam verwendet werden oder Zwischenschichten zwischen Speichervorrichtungsebenen aufweisen.
-
Andererseits können zweidimensionale Anordnungen gesondert gebildet und dann aneinander gepackt werden, um eine nichtmonolithische Speichervorrichtung mit mehreren Speicherschichten zu bilden. Zum Beispiel können nichtmonolithische gestapelte Speicher gebildet werden, indem Speicherebenen auf gesonderten Substraten gebildet werden und die Speicherebenen dann aufeinander gestapelt werden. Die Substrate können vor dem Stapeln verdünnt oder von den Speichervorrichtungsebenen entfernt werden, doch da die Speichervorrichtungsebenen anfänglich über gesonderten Substraten gebildet wurden, sind die sich ergebenden Speicheranordnungen keine monolithischen dreidimensionalen Speicheranordnungen. Ferner können mehrere zweidimensionale Speicheranordnungen oder dreidimensionale Speicheranordnungen (monolithisch oder nichtmonolithisch) auf gesonderten Chips gebildet und dann aneinander gepackt werden, um eine Stapelchip-Speichervorrichtung zu bilden.
-
Für den Betrieb der Speicherelemente und für die Kommunikation mit den Speicherelementen sind typischerweise zugehörige Schaltungen erforderlich. Als nichtbeschränkende Beispiele können Speichervorrichtungen Schaltungen aufweisen, die verwendet werden, um Speicherelemente zu steuern und anzutreiben, damit Funktionen wie das Programmieren und Lesen erfüllt werden. Diese zugehörigen Schaltungen können sich auf dem gleichen Substrat wie die Speicherelemente und/oder auf einem gesonderten Substrat befinden. Zum Beispiel kann sich eine Steuerung für Speicherlese/schreibtätigkeiten auf einem gesonderten Steuerungschip und/oder auf dem gleichen Substrat wie die Speicherelemente befinden.
-
Ein Fachmann wird erkennen, dass diese Erfindung nicht auf die beschriebenen beispielhaften zweidimensionalen und dreidimensionalen Aufbauten beschränkt ist, sondern alle relevanten Speicheraufbauten innerhalb des hier beschriebenen und von einem Fachmann verstandenen Geists und Umfangs der Erfindung abdeckt.
-
In der vorliegenden Anmeldung können Halbleiterspeichervorrichtungen wie die in der vorliegenden Anmeldung beschriebenen flüchtige Speichervorrichtungen wie dynamische Direktzugriffsspeicher("DRAM")- oder statische Direktzugriffsspeicher("SRAM")vorrichtungen, nichtflüchtige Speichervorrichtungen wie resistive Direktzugriffsspeicher ("ReRAM"), elektrisch löschbare programmierbare Nurlesespeicher ("EEPROM"), Flash-Speicher (die auch als Untergruppe der EEPROMs angesehen werden können), ferroelektrische Direktzugriffsspeicher ("FRAM") und magnetoresistive Direktzugriffsspeicher ("MRAM") und andere Halbleiterelemente, die zur Speicherung von Informationen in der Lage sind, beinhalten. Jede Art von Speichervorrichtung kann unterschiedliche Konfigurationen aufweisen. Zum Beispiel können Flash-Speichervorrichtungen in einer NAND- oder in einer NOR-Konfiguration konfiguriert sein.
-
Die Speichervorrichtungen können aus passiven und/oder aktiven Elementen in allen beliebigen Kombinationen gebildet sein. Als nichtbeschränkendes Beispiel beinhalten passive Halbleiterspeicherelemente ReRAM-Vorrichtungselemente, die bei einigen Ausführungsformen ein widerstandwechselndes Speicherelement wie etwa eine Anti-Sicherung, ein Phasenwechselmaterial usw. und optional ein Lenkelement wie etwa eine Diode usw. aufweisen. Als weiteres nichtbeschränkendes Beispiel beinhalten aktive Halbleiterspeicherelemente EEPROM- und Flash-Speicher-Vorrichtungselemente, die bei einigen Ausführungsformen einen Ladungsspeicherbereich wie etwa ein Floating-Gate, leitende Nanopartikel oder ein dielektrisches Ladungsspeichermaterial aufweisen.
-
Mehrere Speicherelemente können so konfiguriert sein, dass sie in Reihe verbunden sind, oder dass jedes Element einzeln zugänglich ist. Als nichtbeschränkendes Beispiel enthalten Flash-Speichervorrichtungen in einer NAND-Konfiguration (NAND-Speicher) typischerweise in Reihe verbundene Speicherelemente. Eine NAND-Speicheranordnung kann so konfiguriert sein, dass die Anordnung aus mehreren Speichersträngen gebildet ist, wobei ein Strang aus mehreren Speicherelementen gebildet ist, die eine einzelne Bitzeile gemeinsam verwenden, und auf die als Gruppe zugegriffen wird. Alternativ können Speicherelemente so konfiguriert sein, dass jedes Element einzeln zugänglich ist, z.B. als NOR-Speicheranordnung. Die NAND- und NOR-Speicherkonfigurationen sind beispielhaft, und die Speicherelemente können auf eine andere Weise konfiguriert sein.
-
Ein "computerlesbares Medium" "maschinenlesbares Medium", "Signalverbreitungs"medium und/oder "signaltragendes Medium" kann jede beliebige Vorrichtung umfassen, die Software zur Verwendung durch oder in Verbindung mit einem System, einem Gerät oder einer Vorrichtung, das bzw. die zur Ausführung von Befehlen in der Lage ist, enthält, speichert, kommuniziert, verbreitet oder transportiert. Das maschinenlesbare Medium kann selektiv, aber ohne Beschränkung darauf, ein elektronisches, magnetisches, optisches, elektromechanisches, Infrarot- oder Halbleitersystem, ein solches Gerät, eine solche Vorrichtung oder ein solches Verbreitungsmedium sein. Eine nichterschöpfende Liste von Beispielen für ein maschinenlesbares Medium würde eine elektrische Anschluss"elektronik" mit einem oder mehreren Drähten, eine tragbare magnetische oder optische Platte, einen flüchtigen Speicher wie etwa einen Direktzugriffsspeicher "RAM", einen Nurlesespeicher "ROM", einen löschbaren programmierbaren Nurlesespeicher (EPROM oder Flash-Speicher), oder eine Lichtleitfaser beinhalten. Ein maschinenlesbares Medium kann auch ein greifbares Medium, worauf Software gedruckt ist, beinhalten, da die Software elektronisch als Bild oder in einem anderen Format (z.B. durch eine optische Abtastung) gespeichert, dann zusammengestellt und/oder übersetzt oder auf eine andere Weise verarbeitet werden kann. Das verarbeitete Medium kann dann in einem Computer und/oder einem Maschinenspeicher gespeichert werden. Bei einer alternativen Ausführungsform können zweckbestimmte Hardwareausführungen wie etwa anwendungsspezifische integrierte Schaltungen, programmierbare Logikanordnungen und andere Hardwarevorrichtungen aufgebaut werden, um eines oder mehrere der hier beschriebenen Verfahren auszuführen. Anwendungen, die die Vorrichtungen und Systeme von verschiedenen Ausführungsformen beinhalten können, können allgemein eine Vielfalt von elektronischen und Computersystemen umfassen. Eine oder mehrere hier beschriebene Ausführungsformen können Funktionen unter Verwendung von zwei oder mehr spezifischen verbundenen Hardwaremodulen oder Vorrichtungen mit zugehörigen Steuer- und Datensignalen, die zwischen den Modulen und durch diese kommuniziert werden können, oder als Teile einer anwendungsspezifischen integrierten Schaltung ausführen. Entsprechend umfasst das vorliegende System Software-, Firmware- und Hardwareausführungen.
-
Die Darstellungen der hier beschriebenen Ausführungsformen sollen ein allgemeines Verständnis des Aufbaus der verschiedenen Ausführungsformen bereitstellen. Die Darstellungen sollen nicht als vollständige Beschreibung aller Elemente und Merkmale von Vorrichtungen und Systemen, die die hier beschriebenen Aufbauten oder Verfahren benutzen, dienen. Fachleuten können bei der Durchsicht der Offenbarung viele andere Ausführungsformen offensichtlich sein. Es können andere Ausführungsformen benutzt und aus der Offenbarung abgeleitet werden, so dass bauliche und logische Ersetzungen und Änderungen vorgenommen werden können, ohne von dem Umfang der Offenbarung abzuweichen. Zudem sind die Darstellungen lediglich stellvertretend und möglicherweise nicht maßstabsgetreu. Bestimmte Verhältnisse in den Darstellungen können übertrieben sein, während andere Verhältnisse minimiert sein können. Entsprechend sollen die Offenbarung und die Figuren anstatt als beschränkend vielmehr als erläuternd angesehen werden.
-
Die obige ausführliche Beschreibung soll als Erläuterung ausgewählter Formen, die die Erfindung annehmen kann, und nicht als Definition der Erfindung verstanden werden. Der Umfang der beanspruchten Erfindung soll nur durch die folgenden Ansprüche einschließlich aller Entsprechungen definiert werden. Schließlich sollte angemerkt werden, dass jedweder Gesichtspunkt einer jeden der hier beschriebenen bevorzugten Ausführungsformen allein oder in Kombination mit einem anderen verwendet werden kann.