DE102010050432A1 - Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern - Google Patents

Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern Download PDF

Info

Publication number
DE102010050432A1
DE102010050432A1 DE102010050432A DE102010050432A DE102010050432A1 DE 102010050432 A1 DE102010050432 A1 DE 102010050432A1 DE 102010050432 A DE102010050432 A DE 102010050432A DE 102010050432 A DE102010050432 A DE 102010050432A DE 102010050432 A1 DE102010050432 A1 DE 102010050432A1
Authority
DE
Germany
Prior art keywords
interface
semiconductor drive
access
delay
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102010050432A
Other languages
English (en)
Inventor
Richard P. Oreg. Mangold
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix NAND Product Solutions Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010050432A1 publication Critical patent/DE102010050432A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern, wird generell veranschaulicht. In dieser Hinsicht wird bei einer Ausführungsform ein Verfahren eingeführt, das umfasst, eine Anforderung von einem Halbleiterlaufwerk für den Zugriff auf eine Schnittstelle einige Zeit zu verzögern, um einem Host zu ermöglichen, auf die Schnittstelle zuzugreifen und einen Befehl zum Halbleiterlaufwerk zu übertragen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.

Description

  • 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]

Claims (20)

  1. Ein Speichermedium, das Inhalt umfasst, der, wenn er durch eine zugreifende Maschine ausgeführt wird, die zugreifende Maschine veranlasst: eine Anforderung von einem Halbleiterlaufwerk für den Zugriff auf eine Schnittstelle für einige Zeit zu verzögern, um einem Host zu ermöglichen, auf die Schnittstelle zuzugreifen und einen Befehl an das Halbleiterlaufwerk zu übertragen.
  2. Speichermedium nach Anspruch 1, weiter umfassend Inhalt, der, wenn er durch eine zugreifende Maschine ausgeführt wird, die zugreifende Maschine veranlasst, zu erkennen, ob der Host gegen das Halbleiterlaufwerk bei einem Versuch auf die Schnittstelle zuzugreifen verloren hat, und eine nachfolgende Anforderung vom Halbleiterlaufwerk für den Zugriff auf die Schnittstelle zu verzögern.
  3. Speichermedium nach Anspruch 2, wobei die Schnittstelle eine SATA-Schnittstelle umfasst.
  4. Speichermedium nach Anspruch 3, wobei das Halbleiterlaufwerk NAND-Flash-Speicher umfasst.
  5. Speichermedium nach Anspruch 1, weiter umfassend Inhalt, der, wenn er durch eine zugreifende Maschine ausgeführt wird, die zugreifende Maschine veranlasst, eine Anforderung von einem Halbleiterlaufwerk für den Zugriff auf eine Schnittstelle zeitweilig zu verzögern, wenn es weniger als eine Schwellenanzahl von im Halbleiterlaufwerk anstehenden Befehlen gibt.
  6. Speichermedium nach Anspruch 4, wobei die Verzögerungszeit ungefähr 1 Mikrosekunde umfasst.
  7. Speichermedium nach Anspruch 1, weiter umfassend Inhalt, der, wenn er durch eine zugreifende Maschine ausgeführt wird, die zugreifende Maschine veranlasst, periodische Anforderungen vom Halbleiterlaufwerk für den Zugriff auf die Schnittstelle zu verzögern.
  8. System, umfassend: einen Prozessor; einen Netzwerkcontroller, einen Schnittstellen-Host; und ein Halbleiterlaufwerk, wobei das Halbleiterlaufwerk einen Arbiter umfasst, um eine Anforderung vom Halbleiterlaufwerk für den Zugriff auf eine Schnittstelle einige Zeit zu verzögern, um dem Schnittstellen-Host zu ermöglichen, auf die Schnittstelle zuzugreifen und einen Befehl zum Halbleiterlaufwerk zu übertragen.
  9. System nach Anspruch 8, weiter umfassend den Arbiter, um zu bestimmen, ob der Schnittstellen-Host gegen das Halbleiterlaufwerk in einem Versuch, auf die Schnittstelle zuzugreifen, verloren hat, und eine nachfolgende Anforderung vom Halbleiterlaufwerk für den Zugriff auf die Schnittstelle zu verzögern.
  10. System nach Anspruch 9, wobei die Schnittstelle eine SATA-Schnittstelle umfasst.
  11. System nach Anspruch 10, wobei das Halbleiterlaufwerk NAND-Flash-Speicher umfasst.
  12. System nach Anspruch 8, weiter umfassend den Arbiter, um eine Anforderung vom Halbleiterlaufwerk für den Zugriff auf eine Schnittstelle nur dann einige Zeit zu verzögern, wenn es weniger als eine Schwellenanzahl von im Halbleiterlaufwerk anstehenden Befehlen gibt.
  13. System nach Anspruch 11, wobei die Verzögerungszeit ungefähr 1 Mikrosekunde umfasst.
  14. System nach Anspruch 8, weiter umfassend den Arbiter, um periodische Anforderungen vom Halbleiterlaufwerk für den Zugriff auf die Schnittstelle zu verzögern.
  15. Verfahren, umfassend: das Empfangen einer Anforderung für Daten bei einem Halbleiterlaufwerk; das Zugreifen auf die angeforderten Daten auf dem Halbleiterlaufwerk als Antwort auf die Anforderung; und einen Versuch auf eine Schnittstelle zuzugreifen, um die angeforderten Daten zu übertragen, für einige Zeit zu verzögern, um einem Host zu ermöglichen, auf die Schnittstelle zuzugreifen und einen Befehl zum Halbleiterlaufwerk zu übertragen.
  16. Verfahren nach Anspruch 15, weiter umfassend das Erkennen, ob der Host gegen das Halbleiterlaufwerk in einem Versuch, auf die Schnittstelle zuzugreifen, verloren hat, und eine nachfolgende Anforderung vom Halbleiterlaufwerk für den Zugriff auf die Schnittstelle zu verzögern.
  17. Verfahren nach Anspruch 16, wobei die Schnittstelle eine SATA-Schnittstelle umfasst.
  18. Verfahren nach Anspruch 17, wobei das Halbleiterlaufwerk NAND-Flash-Speicher umfasst.
  19. Verfahren nach Anspruch 18, wobei die Verzögerungszeit ungefähr 1 Mikrosekunde umfasst.
  20. Verfahren nach Anspruch 15, weiter umfassend periodische Anforderungen vom Halbleiterlaufwerk für den Zugriff auf die Schnittstelle zu verzögern.
DE102010050432A 2009-12-16 2010-11-04 Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern Pending DE102010050432A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/639,700 2009-12-16
US12/639,700 US8386650B2 (en) 2009-12-16 2009-12-16 Method to improve a solid state disk performance by using a programmable bus arbiter

Publications (1)

Publication Number Publication Date
DE102010050432A1 true DE102010050432A1 (de) 2011-06-30

Family

ID=43414460

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010050432A Pending DE102010050432A1 (de) 2009-12-16 2010-11-04 Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern

Country Status (5)

Country Link
US (1) US8386650B2 (de)
CN (1) CN102103467B (de)
DE (1) DE102010050432A1 (de)
GB (1) GB2476343B (de)
TW (1) TWI454928B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2624082B1 (de) * 2012-01-31 2014-03-19 Sick Ag Mobiler Datenspeicher
US20160092117A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Reduction of performance impact of uneven channel loading in solid state drives
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
US10712949B2 (en) * 2017-11-09 2020-07-14 Western Digital Technologies, Inc. Adaptive device quality of service by host memory buffer range
CN108595111A (zh) * 2018-03-14 2018-09-28 深圳忆联信息系统有限公司 一种提升固态硬盘性能的方法及固态硬盘
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI226620B (en) * 2002-11-29 2005-01-11 Benq Corp Data access method for improving performance of an optical disk drive
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7318118B2 (en) * 2005-07-14 2008-01-08 Hitachi Global Storage Technologies B.V. System and method for selective write to flash memory in HDD
CN1920802A (zh) * 2005-08-26 2007-02-28 乐金电子(昆山)电脑有限公司 存储器的总线仲裁系统及存取单元的选择、信号传送方法
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US7685374B2 (en) 2007-07-26 2010-03-23 Siliconsystems, Inc. Multi-interface and multi-bus structured solid-state storage subsystem
TW200915313A (en) * 2007-09-21 2009-04-01 Quanta Storage Inc Reading/writing method for an optical method
CN101398745B (zh) * 2007-09-29 2011-12-21 群联电子股份有限公司 并行数据存取架构的固态盘存储系统与固态盘控制器
JP4635061B2 (ja) * 2008-02-27 2011-02-16 株式会社東芝 半導体記憶装置の評価方法
US8554983B2 (en) * 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
US8200888B2 (en) 2008-06-30 2012-06-12 Intel Corporation Seek time emulation for solid state drives
CN101464781A (zh) * 2008-12-31 2009-06-24 成都市华为赛门铁克科技有限公司 一种端口控制的方法、装置和固态硬盘
US8543756B2 (en) * 2009-02-02 2013-09-24 Marvell World Trade Ltd. Solid-state drive command grouping

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
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)

Also Published As

Publication number Publication date
GB2476343A (en) 2011-06-22
GB201018762D0 (en) 2010-12-22
US8386650B2 (en) 2013-02-26
TWI454928B (zh) 2014-10-01
CN102103467B (zh) 2014-04-30
CN102103467A (zh) 2011-06-22
GB2476343B (en) 2012-10-31
TW201145029A (en) 2011-12-16
US20110145478A1 (en) 2011-06-16

Similar Documents

Publication Publication Date Title
DE112012000749B4 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE112005001512B4 (de) Vorrichtung und Verfahren für den Hochleistungs- Zugriff auf einen flüchtigen Plattenlaufwerkspeicher unter Einsatz einer integrierten Direkt-Speicherzugriffs-Einrichtung
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE102015014851A1 (de) Ressourcenzuteilung und -freigabe für die Energieverwaltung in Vorrichtungen
DE102010050432A1 (de) Verfahren, um eine Halbleiterlaufwerk-Leistung unter Verwendung eines programmierbaren Bus-Arbiters zu verbessern
DE60009355T2 (de) Busbrücke mit einer speichersteuerung mit verbessertem speicheranforderungsarbitrierungsmechanismus
DE112017004663T5 (de) Mehrfachverbinder-unterstützung für usb-c
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE102010044529B4 (de) Autonomes speicher-sub-system mit hardwarebeschleuniger
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE112010002425B4 (de) Delegieren einer Anfrageoperation an eine ander Einrichtung
DE112007001713T5 (de) System und Verfahren zum Steuern von Zuständen niedriger Energie bei Prozessoren
DE102013104329A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE102019105881A1 (de) Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE102011075023A1 (de) Indexierter Registerzugriff für einen Speicherbaustein

Legal Events

Date Code Title Description
R016 Response to examination communication
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP., SAN JOS, US

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US