-
GEBIET DER ERFINDUNG
-
Ausführungsformen der vorliegenden Erfindung beziehen sich generell auf das Gebiet der Datenspeicherung und insbesondere auf ein Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern.
-
HINTERGRUND DER ERFINDUNG
-
Moderne Halbleiterplatten-(SSD)-Laufwerke haben eine solch hohe Leistung, dass sie eine Schnittstelle, wie z. B. eine Serial Advanced Technology Attachment-(SATA)-Schnittstelle, auf eine sehr stoßartige Weise sättigen können. Wegen dieser großen Bursts an Daten können neue Befehle von einem Host daran gehindert werden, zum SSD gesendet zu werden, bis das SSD für eine Zeitdauer untätig ist. Infolgedessen könnte ein SSD nicht imstande sein, die gesamte Gleichzeitigkeit der NAND-Geräte unter sehr großen anstehenden Arbeitslasten zu verwenden. Neue Befehle zum SSD können für mehrere hunderte Mikrosekunden blockiert werden, da das SSD wahrscheinlich SATA-Bus-Arbitration erlangen wird, während es Daten aufweist, die bereit sind, zum Host gesendet zu werden. Das ist kein Problem bei normalen Laufwerken mit sich drehender Scheibe, da sie Daten für mehrere Befehle nicht parallel abholen können. Bei SSDs kann das jedoch die volle Nutzung von mehreren zusammenwirkenden NAND-Kanälen verhindern.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung ist exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht, wobei gleiche Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden und in denen:
-
1 eine grafische Darstellung eines beispielhaften Halbleiterlaufwerks und einer Hostschnittstelle, gemäß einer beispielhaften Ausführungsform der Erfindung, ist;
-
2 ein Blockdiagramm eines elektronischen beispielhaften Geräts ist, das geeignet ist, die offenbarten Verfahren gemäß einer beispielhaften Ausführungsform der Erfindung zu implementieren;
-
3 ein Ablaufdiagramm eines beispielhaften Verfahrens ist, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters gemäß einer beispielhaften Ausführungsform der Erfindung zu verbessern; und
-
4 ein Blockdiagramm eines beispielhaften gefertigten Artikels ist, der Inhalt enthält, welcher das Gerät veranlasst, einen oder mehrere Aspekte von einer oder mehreren Ausführungsformen der Erfindung zu implementieren, wenn durch ein Gerät darauf zugegriffen wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden zum Zweck der Erklärung zahlreiche spezifische Details erläutert, um ein gründliches Verständnis der Erfindung zu ermöglichen. Für fachkundige Personen ist es jedoch offensichtlich, dass die Erfindung auch ohne diese spezifischen Details realisierbar ist. In anderen Fällen sind Strukturen und Geräte in Form eines Blockdiagramms gezeigt, um die Erfindung nicht zu verschleiern.
-
Verweise in dieser Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, mindestens in einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit bezieht sich die Verwendung des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in dieser Beschreibung nicht notwendigerweise immer auf die gleiche Ausführungsform. Des Weiteren können die bestimmten Merkmale, Strukturen oder Charakteristika auf jegliche geeignete Weise bei einer oder mehreren Ausführungsformen kombiniert sein.
-
1 ist eine grafische Darstellung eines beispielhaften Halbleiterlaufwerks und einer Hostschnittstelle gemäß einer beispielhaften Ausführungsform der Erfindung. Gemäß der veranschaulichten beispielhaften Ausführungsform kann System 100 einen Host 102 und ein Halbleiterlaufwerk (SSD) 104 umfassen, das über Schnittstelle 116 kommuniziert und um den Zugriff darauf konkurriert. Host 102 kann die Hostwarteschlange 106 umfassen, um die anstehenden Befehle 110 zu speichern, wie zum Beispiel Leseanfragen, die an SSD 104 zu senden sind, wenn Host 102 auf Schnittstelle 116 zugreifen kann. SSD 104 kann die Diskwarteschlange 108 umfassen, um die Ergebnisse 112 zu speichern, wie zum Beispiel Lesezugriffsausführungen, die an Host 102 zu senden sind, wenn SSD 104 auf Schnittstelle 116 zugreifen kann.
-
Host 102 und SSD 104 können für den Zugriff auf Schnittstelle 116 arbitrieren. Bei einer Ausführungsform, wo SSD 104 Zugriffsanforderung 118 unterbreitet, bevor Host 102 Zugriffsanforderung 120 unterbreitet, hat SSD 104 Zugriff auf Schnittstelle 116 für die Zugangszeit 122, um ein gespeichertes Ergebnis 112 zu übertragen. Wenn SSD 104 nach der Zugangszeit 122 mit dem Übertragen fertig ist, kann SSD 104 bereit sein, eine andere Zugriffsanforderung zur Zeit 124 zu unterbreiten. Jedoch kann SSD 104 als Teil eines Verfahrens, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters, wie im Folgenden in Bezugnahme auf 3 beschrieben, zu verbessern, stattdessen eine Anforderung zum Zugriff auf Schnittstelle 116 für eine Verzögerungszeit 126 verzögern, um Host 102 zu ermöglichen, die Zugriffsanforderung 128 zu unterbreiten und einen Befehl 110 an SSD 104 über Schnittstelle 116 während der Zugangszeit 130 zu übertragen.
-
Verzögerungszeit 126 kann periodisch oder nur dann eingeleitet werden, wenn bestimmte Zustände zutreffen. Bei einer Ausführungsform wird Verzögerungszeit 126 eingeführt, um SSD 104 beim Anfordern von Zugriff auf Schnittstelle 116 zu verzögern, wenn erkannt wird, dass Host 102 gegen SSD 104 in einem Versuch verloren hat, auf Schnittstelle 116 zuzugreifen, wie zum Beispiel der Fall der Zugriffsanforderung 120. Bei einer Ausführungsform wird Verzögerungszeit 126 nur eingeführt, wenn es weniger gibt als Schwellwert 114 Ergebnisse 112 gespeichert in Diskwarteschlange 108, zum Beispiel, wenn es vorteilhaft wäre, Host 102 zu ermöglichen, zusätzliche Befehle 110 zu unterbreiten. Andere Verfahren oder Zustände dafür, wann Verzögerungszeit 126 einzuführen ist, können einem Fachmann einfallen und werden als Teil vom Sinn der Ausführungsformen der Erfindung betrachtet. Bei einer Ausführungsform umfasst Verzögerungszeit 126 ungefähr 1 Mikrosekunde.
-
2 ist ein Blockdiagramm eines elektronischen beispielhaften Geräts, das geeignet ist, die offenbarten Verfahren gemäß einer beispielhaften Ausführungsform der Erfindung zu implementieren. Das elektronische Gerät 200 soll beliebige Geräte aus einer großen Vielfalt von herkömmlichen und nicht herkömmlichen elektronischen Geräten, Laptops, Desktopcomputern, Mobiltelefonen, Geräten für Drahtloskommunikationsteilnehmer, Drahtlos-Telefonie-Infrastrukturelementen, Persönlichen Digitalen Assistenten (PDAs), Set-Top-Boxen oder irgendein beliebiges elektrisches Gerät darstellen, auf das die Lehren der Erfindung angewendet werden können. Gemäß der dargestellten beispielhaften Ausführungsform kann das System 200 einen oder mehrere Prozessoren 202, Speicher-Controller 204, Systemspeicher 206, Eingabe-/Ausgabe-Controller 208, Netzwerk-Controller 210, Eingabe-/Ausgabe-Gerät(e) 212, Halbleiterlaufwerk 214, Kopplungsstruktur 216 und Arbiter 218 gekoppelt wie gezeigt in 2 umfassen. Bei einer Ausführungsform umfasst Halbleiterlaufwerk 214 Flash-Speicher, wie z. B. NAND-Flash-Speicher, und interagiert mit I/O-Controller 208, während SSD 104 mit Host 102 interagiert. Bei einer Ausführungsform kann Arbiter 218 eine Verzögerung 126 in SSD-Kopplungsstruktur-Zugriffsanforderungen als Teil eines Verfahrens einführen, um eine Halbleiterlaufwerk-Leistung, wie in mehr Einzelheiten unter Bezugnahme auf 3 beschrieben, zu verbessern.
-
Der/die Prozessor(en) 202 kann/können eine beliebige Komponente aus einer großen Vielfalt von Kontrolllogik darstellen, die unter anderem umfasst: einen oder mehrere Mikroprozessoren, eine programmierbare Logikvorrichtung (programmable logic device, PLD), einen programmierbaren Logik-Array (PLA), eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit, ASIC), einen Mikrocontroller und Ähnliches, obwohl die vorliegende Erfindung in dieser Hinsicht nicht beschränkt ist. Bei einer Ausführungsform ist der/sind die Prozessor(en) 202 Intel®-kompatible Prozessoren. Der/die Prozessor(en) 202 kann/können über einen Satz von Anweisungen verfügen, der eine Mehrzahl von Anweisungen auf Maschinenebene umfasst, die beispielsweise von einer Anwendung oder einem Betriebssystem aufgerufen werden können.
-
Der Speicher-Controller 204 kann eine beliebige Art von Chipsatz- oder Kontrolllogik darstellen, die den Systemspeicher 206 mit den anderen Komponenten des elektronischen Geräts 200 verbindet. Bei einer Ausführungsform kann die Verbindung zwischen dem/den Prozessor(en) 202 und dem Speicher-Controller 204 ein serieller Punkt-zu-Punkt-Link sein.
-
Bei einer anderen Ausführungsform kann der Speicher-Controller 204 als eine Northbridge bezeichnet werden.
-
Der Systemspeicher 206 kann Speichergeräte jeder beliebigen Art darstellen, die zur Speicherung von Daten und Anweisungen verwendet werden und die eventuell von dem/den Prozessor(en) 202 verwendet worden sind oder zukünftig verwendet werden. Der Systemspeicher 206 besteht typischerweise aus Dynamic Random Access Memory (DRAM), obwohl die Erfindung in dieser Hinsicht nicht eingeschränkt ist. Bei einer Ausführungsform kann der Systemspeicher 206 aus Rambus DRAM (RDRAM) bestehen. Bei einer Ausführungsform kann der Systemspeicher 206 aus Double Data Rate Synchronous DRAM (DDRSDRAM) bestehen.
-
Der Eingabe-/Ausgabe-(Input/output, I/O)-Controller 208 kann eine beliebige Art von Chipsatz- oder Kontrolllogik darstellen, welche die I/O-Geräte 212 mit den anderen Komponenten des elektronischen Geräts 200 verbindet. Bei einer Ausführungsform kann der I/O-Controller 208 als eine Southbridge bezeichnet werden. Bei einer anderen Ausführungsform kann der I/O-Controller 208 ein Controller sein, der der Peripheral Component Interconnect (PCI) ExpressTM Base Specification 1.0a der PCI Special Interest Group vom 15. April 2003 entspricht.
-
Der Netzwerk-Controller 210 kann jede beliebige Art von Gerät darstellen, mit dessen Hilfe das elektronische Gerät 200 mit anderen elektronischen Geräten oder Vorrichtungen kommunizieren kann. Bei einer Ausführungsform kann der Netzwerk-Controller 210 folgendem Standard des Institute of Electrical and Electronics Engineers, Inc. (IEEE) entsprechen: 802.11b (genehmigt am 16. September 1999, Anhang zum ANSI/IEEE Std 802.11, Ausgabe 1999). Bei einer anderen Ausführungsform kann der Netzwerk-Controller 210 eine Ethernet-Netzwerkschnittstellenkarte sein.
-
I/O-Gerät(e) 212 können jede Geräteart, Peripheriegerät oder Komponente darstellen, die eine Eingabe zum elektronischen Gerät 200 bereitstellen oder eine Ausgabe davon verarbeiten.
-
Kopplungsstruktur 216 ist als Kopplung des Halbleiterlaufwerks 214 mit dem I/O-Controller 208 gezeigt, jedoch kann Halbleiterlaufwerk 214 mit anderen Komponenten des elektronischen Geräts 200 gekoppelt sein. Bei einer Ausführungsform stellt Kopplungsstruktur 216 einen SATA-Bus dar.
-
Während Arbiter 218 als Teil des Halbleiterlaufwerks 214 gezeigt ist, kann dieser in einer anderen Komponente des elektronischen Geräts 200, wie z. B. I/O-Controller 208, enthalten sein. Bei einer Ausführungsform kann Arbiter 218 Software oder eine Kombination aus Software und Hardware sein. Bei einer Ausführungsform repräsentiert Arbiter 218 eine Betriebssystem-(OS)-Anwendung.
-
3 ist ein Ablaufdiagramm eines beispielhaften Verfahrens, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters gemäß einer beispielhaften Ausführungsform der Erfindung zu verbessern. Es ist für den Fachmann ohne Weiteres offensichtlich, dass viele der Operationen tatsächlich parallel oder zusammenwirkend durchgeführt werden können, obwohl die folgenden Operationen als ein sequenzieller Prozess beschrieben sein können. Außerdem kann die Reihenfolge der Operationen neu angeordnet werden, ohne vom Sinn von Ausführungsformen der Erfindung abzuweichen.
-
Bei einer Ausführungsform beginnt Verfahren 300 mit SSD 214, das eine kürzlich empfangene Anforderung für Daten vom I/O-Controller 208 verarbeitet (302). Bei einer beispielhaften Ausführungsform kann ein Befehl 110 eine virtuelle Adresse für vom Flash-Speicher zu lesende Daten umfassen.
-
Dann würde SSD 214 die verlangten Daten vom Flash-Speicher abrufen (304). Bei einer Ausführungsform würde SSD 214 die Ergebnisse in der Disk-Warteschlange 108 speichern.
-
Verfahren 300 fährt mit Arbiter 218 fort, indem es bestimmt (306), ob I/O-Controller 208 bei einem Versuch, auf Kopplungsstruktur 216 zuzugreifen, verloren hat. Bei einer Ausführungsform setzt Arbiter 218 einen Flag oder inkrementiert einen Zähler, wenn eine verlierende Zugriffsanforderung 120 erkannt wird.
-
Dann kann Arbiter 218 eine Anforderung durch SSD 214 verzögern (308), um auf die Kopplungsstruktur 216 zuzugreifen, wenn bestimmten Zustände zutreffen. Bei einer beispielhaften Ausführungsform wird eine Verzögerungszeit 126 eingeführt, wenn eine verlierende Zugriffsanforderung 120 erkannt wurde. Bei einer Ausführungsform führt Arbiter 218 Verzögerungszeit 126 ein, wenn eine Formel basierend mindestens teilweise auf der Anzahl an gespeicherten Ergebnissen 112 und/oder ein Zähler von verlierenden Zugriffsanforderungen 120 anzeigt, dass eine Verzögerung die Diskleistung verbessern würde.
-
Dann kann Verfahren 300 mit SSD 214 mit dem Anfordern (310) von Zugriff auf Kopplungsstruktur 216 abschließen, um abgerufene Daten, wie zum Beispiel ein gespeichertes Ergebnis 112, zu übertragen.
-
4 veranschaulicht ein Blockdiagramm eines beispielhaften Speichermediums, das Inhalt umfasst, der ein elektronisches Gerät veranlasst, einen oder mehrere Aspekte des offenbarten Verfahrens 300 zu implementieren, wenn auf ihn zugegriffen wird. In dieser Hinsicht umfasst Speichermedium 400 Inhalt 402 (z. B. Anweisungen, Daten oder irgendeine Kombination davon), welcher die Vorrichtung veranlasst, einen oder mehrere Aspekte des oben beschriebenen Verfahrens zu implementieren, wenn er ausgeführt wird.
-
Das maschinenlesbare (Speicher-)Medium 400 kann beinhalten, ist aber nicht beschränkt auf, Disketten, optische Disks, CD-ROMs und magnetooptische Disks, ROMS, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Flash-Speicher oder andere Arten von Medien/maschinenlesbarem Medium, das zum Speichern elektronischer Befehle geeignet ist. Beispielsweise kann die vorliegende Erfindung auch als ein Computerprogramm-Produkt heruntergeladen werden, wobei das Programm von einem entfernten Computer an einen anfragenden Computer mittels Datensignalen übertragen werden kann, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium über einen Kommunikationslink (z. B. ein Modem, eine Funk- oder Netzwerkverbindung) verkörpert sind.
-
Bei der vorstehenden Beschreibung werden zum Zweck der Erklärung zahlreiche spezifische Details erläutert, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Für einen Fachmann ist es jedoch offensichtlich, dass die vorliegende Erfindung ohne einige dieser spezifischen Details betrieben werden kann. In anderen Fällen sind wohlbekannte Strukturen und Geräte in Form von Blockdiagrammen gezeigt.
-
Ausführungsformen der vorliegenden Erfindung können in einer Vielzahl von Anwendungen verwendet werden. Obwohl die vorliegende Erfindung in dieser Beziehung nicht begrenzt ist, kann die hier offenbarte Erfindung unter anderen elektronischen Bauelementen in Mikrokontrollern, Mehrzweckmikroprozessoren, Digitalsignal-Prozessoren (DSPs), Reduced Instruction-Set Computing (RISC), Complex Instruction-Set Computing (CISC) verwendet werden. Jedoch sollte es selbstverständlich sein, dass der Umfang der vorliegenden Erfindung nicht auf diese Beispiele begrenzt ist.
-
Ausführungsformen der vorliegenden Erfindung können ebenfalls in integrierten Schaltungsblocks, die als Kernspeicher, Cache-Speicher bezeichnet werden, oder anderen Arten von Speichern enthalten sein, die elektronische Anweisungen speichern, welche vom Mikroprozessor auszuführen sind, oder die Daten speichern, die in arithmetischen Operationen verwendet werden können. Im Allgemeinen kann eine Ausführungsform, die mehrstufige Domino-Logik gemäß dem beanspruchten Gegenstand verwendet, einen Vorteil für Mikroprozessoren bieten und insbesondere in einen Adressendecoder für ein Speichergerät aufgenommen werden. Es ist zu beachten, dass die Ausführungsformen in Funksysteme oder tragbare Geräte integriert werden können, insbesondere, wenn Geräte von reduzierter Leistungsaufnahme abhängen. Deshalb sollen Laptops, mobile Funktelefon-Kommunikationssysteme, Zwei-Wege-Funk-Kommunikationssysteme, Ein-Weg-Pager, Zwei-Wege-Pager, Personal Communication Systems (PCS), Personal Digital Assistants (PDAs), Kameras und andere Produkte im Umfang der vorliegenden Erfindung eingeschlossen sein.
-
Die vorliegende Erfindung umfasst verschiedene Operationen. Diese Operationen der vorliegenden Erfindung können von Hardwarekomponenten ausgeführt werden oder in einem maschinenausführbaren Inhalt (z. B. Befehle) umgesetzt sein, der verwendet werden kann, um einen Universal- oder Spezialprozessor oder Logikschaltungen, die mit den Befehlen programmiert sind, zu veranlassen, die Prozesse auszuführen. Alternativ können die Operationen durch eine Kombination aus Hardware und Software ausgeführt werden. Des Weiteren werden fachkundige Personen erkennen, dass eine solche Funktionalität gut in irgendeiner Anzahl an Alternativausführugsformen verkörpert sein kann, wie beispielsweise integriert innerhalb einer Kommunikationsvorrichtung (z. B. einem Mobilfunktelefon), obwohl die Erfindung im Kontext einer Computervorrichtung beschrieben wurde.
-
Viele der Verfahren sind in ihrer grundlegendsten Form beschrieben, zu jedem der Verfahren können jedoch Operationen hinzugefügt oder von ihm entfernt werden und Informationen können bei jeglicher der beschriebenen Meldungen hinzugefügt oder entfernt werden, ohne vom grundlegenden Umfang der vorliegenden Erfindung abzuweichen. Jede Anzahl an Variationen des erfindungsgemäßen Konzepts ist innerhalb des Umfangs und Sinns der vorliegenden Erfindung antizipiert. In dieser Hinsicht werden die speziellen veranschaulichten beispielhaften Ausführungsformen nicht bereitgestellt, um die Erfindung zu begrenzen, sondern nur um sie zu veranschaulichen. Der Umfang der vorliegenden Erfindung wird nicht durch die oben aufgeführten spezifischen Beispiele bestimmt, sondern nur durch die nachfolgenden Ansprüche.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- Standard des Institute of Electrical and Electronics Engineers, Inc. (IEEE) entsprechen: 802.11b (genehmigt am 16. September 1999, Anhang zum ANSI/IEEE Std 802.11, Ausgabe 1999) [0019]