DE102013202627B4 - Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit - Google Patents
Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit Download PDFInfo
- Publication number
- DE102013202627B4 DE102013202627B4 DE102013202627.7A DE102013202627A DE102013202627B4 DE 102013202627 B4 DE102013202627 B4 DE 102013202627B4 DE 102013202627 A DE102013202627 A DE 102013202627A DE 102013202627 B4 DE102013202627 B4 DE 102013202627B4
- Authority
- DE
- Germany
- Prior art keywords
- external
- command
- control unit
- connection
- interface
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 title claims description 24
- 239000004065 semiconductor Substances 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000002093 peripheral effect Effects 0.000 claims abstract description 13
- 238000005516 engineering process Methods 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000003321 amplification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2012—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
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)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
- Gebiet der Erfindung
- Das Gebiet der Erfindung bezieht sich auf Datenverarbeitung oder genauer auf Verfahren, Vorrichtungen und Computerprogrammprodukte zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit.
- Beschreibung des Standes der Technik
- Peripheral-Component-Interconnect-Express(PCIe)-Einheiten auf der Grundlage von Halbleiterspeichern finden immer größere Verbreitung. PCIe ist ein Protokoll, bei dessen Entwicklung Speicheranwendungen nicht im Vordergrund standen, daher fehlen diesem Protokoll einige der Verwaltungs- und Dienstmerkmale, die andere Protokolle wie beispielsweise SAS und SATA bereitstellen.
US 2011/264840 A1 beschreibt Systeme und Verfahren zum Verbessern von Verbindungen mit einem Informationshandhabungssystem.US 2011/225352 A1 offenbart ein Objekt-basiertes Speichersystem umfassend ein Host-System, das in der Lage ist, Anwendungen für und mit einer Objektbasierten Speichervorrichtung auszuführen.US 2011/202707 A1 beschreibt eine Hybrid-Datenspeichervorrichtung, die eine Festkörperspeichervorrichtung, eine Plattenspeichervorrichtung und eine hybride Datenspeichervorrichtungssteuerung, die sich in Kommunikation mit der Festkörperspeichervorrichtung und der Plattenkörperspeichervorrichtung befindet.US 2011/239009 A1 beschreibt eine Speichervorrichtung, die eine Speichereinheit umfasst, die konfiguriert ist, um Daten auf nichtflüchtige Weise zu speichern mit einen ersten Verbinder und einem zweiten Verbinder; eine Identifikationseinheit, die konfiguriert ist, um einen Typ einer Schnittstelle zu identifizieren, die über den ersten Verbinder oder den zweiten Verbinder verbunden ist; und eine Steuereinheit, die konfiguriert ist, um den Stromverbrauch der Speichereinheit gemäß dem identifizierten Typ der Schnittstelle zu steuern.US 7917682 B2 offenbart SAS-über-Enhanced-Ethernet-Controller, die SAS und Enhanced Ethernet integrieren, um eine Konvertierung zwischen SAS und Enhanced Ethernet durchzuführen. - KURZDARSTELLUNG DER ERFINDUNG
- Verfahren, Vorrichtungen und Computerprogrammprodukte zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit werden bereitgestellt, wobei die Speichereinheit eine interne Peripheral-Component-Interconnect-Express(PCIe)-Schnittstelle zum Steuern eines Halbleiterspeichers in der Speichereinheit aufweist. Bei bestimmten Ausführungsformen enthält die Speichereinheit eine erste externe Schnittstelle, die so konfiguriert ist, dass sie eine externe PCIe-Verbindung herstellt, sowie eine zweite externe Schnittstelle, die so konfiguriert ist, dass sie mindestens eine externe Serial-Attached-Small-Computer-System-Interface(SAS)-Verbindung oder eine externe Serial-Advanced-Technology-Attachment(SATA)-Verbindung herstellt. Ausführungsformen beinhalten, dass die hybride Steuereinheit von einer externen Quelle einen ersten Befehl an der ersten externen Schnittstelle sowie einen zweiten Befehl an der zweiten externen Schnittstelle empfängt, dass die hybride Steuereinheit den ersten Befehl unter Verwendung eines PCIe-Protokolls und den zweiten Befehl unter Verwendung eines SAS-Protokolls oder eines SATA-Protokolls gleichzeitig ausführt, dass ein Fehler einer externen PCIe-Verbindung zwischen der ersten externen Schnittstelle und der externen Quelle durch die hybride Steuereinheit erkannt wird und dass als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung die zweite externe Schnittstelle verwendet wird, um über eine externe SAS-Verbindung oder eine externe SATA-Verbindung Daten mit der externen Quelle auszutauschen.
- Das Obengenannte und andere Aufgaben, Merkmale und Vorteile der Erfindung werden anhand der nachfolgenden ausführlicheren Beschreibungen von beispielhaften Ausführungsformen der Erfindung, wie sie in den beigefügten Zeichnungen veranschaulicht sind, besser verdeutlicht, wobei gleiche Ziffern allgemein gleiche Teile von beispielhaften Ausführungsformen der Erfindung kennzeichnen.
- Figurenliste
-
-
1 zeigt ein Blockschaltbild einer Speichereinheit, die eine hybride Steuereinheit mit automatischen Datenverarbeitungsmaschinen aufweist, welche gemäß Ausführungsformen der vorliegenden Erfindung zum Verwalten der Speichereinheit zweckdienlich sind. -
2 zeigt einen Ablaufplan, der ein beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. -
3 zeigt einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. -
4 zeigt einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht.5 zeigt einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. - AUSFÜHRLICHE BESCHREIBUNG VON BEISPIELHAFTEN
- AUSFÜHRUNGSFORMEN
- Beispielhafte Verfahren, Vorrichtungen und Computerprogrammprodukte zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß der vorliegenden Erfindung werden mit Bezug auf die beigefügten Zeichnungen mit
1 beginnend beschrieben. Das Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß der vorliegenden Erfindung wird allgemein mit Computern, d.h. mit automatischen Datenverarbeitungsmaschinen, ausgeführt.1 zeigt ein Schaltbild eines Systems, das eine Speichereinheit (102 ) mit einer hybriden Steuereinheit (108 ) enthält, die automatische Datenverarbeitungsmaschinen aufweist, welche zum Verwalten der Speichereinheit (102 ) gemäß Ausführungsformen der vorliegenden Erfindung zweckdienlich sind. Bei einer bestimmten Ausführungsform ist das System von1 Teil eines Computers. - In dem Beispiel von
1 ermöglicht die hybride Steuereinheit (108 ) den Zugriff auf Halbleiterspeicher-Chips (104 ), die sich in der Speichereinheit (102 ) befinden. Ein Halbleiterspeicher-Chip kann nichtflüchtige oder flüchtige Speicherkomponenten zum Speichern von Daten beinhalten. Zu Beispielen von Halbleiterspeichereinheiten gehören auf NAND beruhende Flash-Speicher und flüchtige DRAM-Speicher. Die hybride Steuereinheit (108 ) beinhaltet mindestens einen Prozessor (156 ) sowie einen Direktzugriffsspeicher (RAM) (190 ), die beide mit einem Processor Local Bus (PLB) (176 ) verbunden sind. Ein PLB ist ein Hochleistungsbus, der Verbindungen mit großer Bandbreite und geringer Wartezeit zwischen Hochleistungsperipheriegeräten einer Speichereinheit, dem Prozessor (156 ) und dem RAM (190 ) bereitstellt. Der Zugriff auf den PLB (176 ) wird von einer PLB-Steuereinheit (174 ) gesteuert. Zu Beispielen von Hochleistungsperipheriegeräten gehören eine interne Peripheral-Component-Interconnect-Express(PCIe)-Schnittstelle (106), die erste externe Schnittstelle (112 ) und die zweite externe Schnittstelle (114 ). - Eine interne PCIe-Schnittstelle enthält Pfade, die die Halbleiterspeicher-Chips (
104 ) über den PLB (176 ) mit den anderen Komponenten der hybriden Steuereinheit (108 ) verbinden. Pfade der internen PCIe-Schnittstelle sind so konfiguriert, dass sie Daten zwischen einem PCIe-Protokoll (198 ) und einem PLB-Protokoll für einen Datenaustausch zwischen der hybriden Steuereinheit (108 ) und den Halbleiterspeicher-Chips (104 ) übersetzen. Ein PCIe-Protokoll ist ein Standard mit Angaben zum Ausführen eines Computererweiterungsbusses. In dem Beispiel von1 ist die erste externe Schnittstelle (112 ) auch eine PCIe-Schnittstelle und wird zum Übersetzen von Daten zwischen dem PCIe-Protokoll (198 ) und dem PLB-Protokoll für einen Datenaustausch zwischen einer externen Quelle (130 ) und der hybriden Steuereinheit (108 ) verwendet. Die zweite externe Schnittstelle (114 ) ist eine sekundäre Busschnittstelle zum Übersetzen von Daten zwischen dem PLB-Protokoll und einem sekundären Busprotokoll wie beispielsweise einem SAS-Protokoll (194 ) und einem SATA-Protokoll (196 ). Ein SAS-Protokoll und ein SATA-Protokoll sind beides Standards mit Angaben zum Ausführen eines Computerbusses und einer Computerbusschnittstelle. Das bedeutet, dass die hybride Steuereinheit (108 ) von1 mindestens zwei unterschiedliche externe Schnittstellen für den Datenaustausch mit der externen Quelle (130 ) enthält. Eine externe Quelle kann eine beliebige Komponente eines Datenverarbeitungssystems wie beispielsweise ein Prozessor sein. - In dem Beispiel von
1 beinhaltet die hybride Steuereinheit (108 ) ferner einen On-Chip Peripheral Bus (OPB) für periphere Komponenten mit geringerer Leistung wie beispielsweise ein Zeitgeber (171 ) und eine Unterbrechungssteuereinheit (interrupt controller) (172 ). Der Zugriff auf den OCB (177 ) wird von einer OLB-Steuereinheit (175 ) gesteuert. Zwischen dem PLB (176 ) und dem OCB (177 ) wird eine Brücke (173 ) bereitgestellt, um eine Datenübertragung zwischen den Komponenten des PLB (176 ) und des OCB (177 ) zu ermöglichen. Die Komponenten der hybriden Steuereinheit (108 ) dienen nur als Beispiel. Gemäß Ausführungsformen der vorliegenden Erfindung kann eine hybride Steuereinheit zusätzliche periphere Komponenten, alternative Bus- und periphere Verbindungen sowie zusätzliche Busse (z.B. einen Device-Control-Register(DCR)-Bus) beinhalten. - Im RAM (
190 ) ist ein hybrides Steuermodul (192 ) gespeichert, das zum Verwalten der Speichereinheit gemäß Ausführungsformen der vorliegenden Erfindung verwendet wird. Das hybride Steuermodul (192 ) beinhaltet Computerprogrammbefehle, die, wenn sie von dem Prozessor (156 ) ausgeführt werden, die hybride Steuereinheit (108 ) veranlassen, gemeinsame Funktionen der Speichersteuereinheit bei Daten durchzuführen, die den Halbleiterspeicher-Chips (104 ) entsprechen. Zu Beispielen von Funktionen der Speichersteuereinheit gehören Fehlerkorrektur (ECC), Wear Leveling, Bad-Block-Zuordnung, Lese-Bereinigung (Read Scrubbing) und Lese-Stör-Verwaltung (Read Disturb Management), Lese- und Schreibzwischenspeicherung, Speicherbereinigung (garbage collection) und Verschlüsselung. - Das hybride Steuermodul (
192 ) beinhaltet darüber hinaus ferner Computerprogrammbefehle, die, wenn sie von dem Prozessor (156 ) ausgeführt werden, die hybride Steuereinheit (108 ) veranlassen, die Schritte auszuführen: Empfangen eines ersten Befehls (120 ) an der ersten externen Schnittstelle (112 ) und eines zweiten Befehls (122 ) an der zweiten externen Schnittstelle (114 ) durch die hybride Steuereinheit, wobei die Befehle von der externen Quelle (130 ) kommen; und gleichzeitige Ausführung des ersten Befehls (120 ) unter Verwendung eines PCIe-Protokolls (198 ) sowie des zweiten Befehls (122 ) unter Verwendung eines SAS-Protokolls (194 ) oder eines SATA-Protokolls (196 ) durch die hybride Steuereinheit (108 ). Das bedeutet, dass die hybride Steuereinheit (108 ) Befehle unter Verwendung zweier unterschiedlicher Protokolle verarbeiten kann. - Der erste Befehl (
120 ) kann zum Beispiel einen PCIe-E/A-Befehl enthalten, und der zweite Befehl (122 ) kann einen Verwaltungsbefehl enthalten. Die hybride Steuereinheit (108 ) kann das PCIe-Protokoll verwenden, um den PCIe-E/A-Befehl zu verarbeiten, und das SATA-Protokoll oder das SAS-Protokoll, um den Verwaltungsbefehl zu verarbeiten. In diesem Beispiel kann das Verarbeiten des PCIe-E/A-Befehls ein Lesen und Schreiben von Daten aus und in die Halbleiterspeicher-Chips (104 ) beinhalten, und das Verarbeiten des Verwaltungsbefehls kann ein Abrufen und Schreiben von Verwaltungsdaten in Verwaltungsdatenregistern (199 ) in der hybriden Steuereinheit (108 ) beinhalten. In dem Beispiel von1 speichern die Verwaltungsdatenregister (199 ) Verwaltungsdaten (197 ), die dem Halbleiterspeicher (104 ) entsprechen. Zu Beispielen von Verwaltungsdaten gehören eine Reihe von Laufzeit-Schreibvorgängen in der Speichereinheit, die durchschnittliche Write Amplification und die Anzahl von Zellen in den Speicher-Chips, die als beschädigt gekennzeichnet wurden. - Durch zwei externe Schnittstellen für die Verwendung unterschiedlicher Protokolle kann die hybride Steuereinheit (
108 ) wie in2 dargestellt E/A-Verwaltungsbefehle und Verwaltungsbefehle gleichzeitig verarbeiten, wie ferner in3 dargestellt, kann sie einer externen Quelle einen Fehler der ersten Verbindung über eine zweite Verbindung melden, wie weiterhin in4 dargestellt, kann sie als Reaktion auf einen Fehler einer Verbindung ein normales Abschalten der Speichereinheit durchführen und wie in5 dargestellt, kann sie zwischen zwei Protokollmodi umschalten. - Zur weiteren Erläuterung zeigt
2 einen Ablaufplan, der ein beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit (108 ) gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Das Verfahren von2 beinhaltet ein Empfangen (202 ) eines ersten Befehls (120 ) an der ersten externen Schnittstelle (112 ) durch die hybride Steuereinheit (108 ), wobei der Befehl von einer Quelle (130 ) kommt, die sich außerhalb der Speichereinheit (102 ) befindet. Das Empfangen (202 ) eines ersten Befehls (120 ) an der ersten externen Schnittstelle (112 ) durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem ein PCIe-Eingangs-/Ausgangsbefehl empfangen wird, um auf Daten zuzugreifen oder Daten in die Halbleiterspeicher-Chips zu schreiben, wobei der Befehl von einer Quelle (130 ) kommt, die sich außerhalb der Speichereinheit (102 ) befindet. - Das Verfahren von
2 beinhaltet ein Empfangen (204 ) eines zweiten Befehls (122 ) an der zweiten externen Schnittstelle (114 ) durch die hybride Steuereinheit (108 ), wobei der Befehl von der externen Quelle (130 ) kommt. Das Empfangen (204 ) eines zweiten Befehls (122 ) an der zweiten externen Schnittstelle (114 ) durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem ein SAS-Verwaltungsbefehl oder ein SATA-Verwaltungsbefehl ausgeführt wird, um auf Verwaltungsdaten zuzugreifen, die den Halbleiterspeicher-Chips entsprechen, wobei der Befehl von der externen Quelle (130 ) kommt. Zu Beispielen von Verwaltungsdaten gehören eine Reihe von Laufzeit-Schreibvorgängen in der Speichereinheit, die durchschnittliche Write Amplification und die Anzahl von Zellen in den Speicher-Chips, die als beschädigt gekennzeichnet wurden. - Das Verfahren von
2 beinhaltet eine gleichzeitige Ausführung (206 ) des ersten Befehls (120 ) unter Verwendung eines PCIe-Protokolls (198 ) sowie des zweiten Befehls (122 ) unter Verwendung eines SAS-Protokolls (194 ) oder eines SATA-Protokolls (196 ) durch die hybride Steuereinheit (108 ). Das gleichzeitige Ausführen (206 ) des ersten Befehls (120 ) unter Verwendung eines PCIe-Protokolls (198 ) und des zweiten Befehls (122 ) unter Verwendung eines SAS-Protokolls (194 ) oder eines SATA-Protokolls (196 ) durch die hybride Steuereinheit (108 ) kann erfolgen, indem als Reaktion auf das Empfangen eines PCIe-Befehls auf Daten zugegriffen wird, die in den Speicher-Chips gespeichert sind, und indem als Reaktion auf das Empfangen eines SAS-Befehls oder SATA-Befehls auf Verwaltungsdaten zugegriffen wird, die in Verwaltungsdatenregistern in der hybriden Steuereinheit gespeichert sind. Das heißt, dass die hybride Steuereinheit (108 ) so konfiguriert werden kann, dass sie unter Verwendung von zwei Protokollen gleichzeitig Befehle verarbeitet. - Zur weiteren Erläuterung zeigt
3 einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Das Verfahren von3 ähnelt dem Verfahren von2 insofern, als das Verfahren von3 auch ein Empfangen (202 ) eines ersten Befehls (120 ) an der ersten externen Schnittstelle (112 ) beinhaltet, wobei der Befehl von einer Quelle (130 ) kommt, die sich außerhalb der Speichereinheit (102 ) befindet, sowie ein Empfangen (204 ) eines zweiten Befehls (122 ) an der zweiten externen Schnittstelle (114 ), wobei der Befehl von der externen Quelle (130 ) kommt, und ein gleichzeitiges Ausführen (206 ) des ersten Befehls (120 ) unter Verwendung eines PCIe-Protokolls (198 ) und des zweiten Befehls (122 ) unter Verwendung eines SAS-Protokolls (194 ) oder eines SATA-Protokolls (196 ). - Das Verfahren von
3 beinhaltet ferner ein Erkennen (302 ) eines Fehlers einer externen PCIe-Verbindung (116 ) zwischen der ersten externen Schnittstelle (112 ) und der externen Quelle (130 ) durch die hybride Steuereinheit (108 ). Das Erkennen (302 ) eines Fehlers einer externen PCIe-Verbindung (116 ) zwischen der ersten externen Schnittstelle (112 ) und der externen Quelle (130 ) durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem eine Meldung von der ersten externen Schnittstelle empfangen wird. Zu Beispielen von Meldungen können Zeitlimitüberschreitungen, ungültige Daten und Meldungen über ungültige oder beschädigte Daten gehören. - Das Verfahren von
3 beinhaltet ferner als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung (116 ), dass die zweite externe Schnittstelle (114 ) verwendet wird, um über eine externe SAS-Verbindung (118 ) oder eine externe SATA-Verbindung (118 ) Daten mit der externen Quelle (130 ) auszutauschen. Das Verwenden der zweiten externen Schnittstelle (114 ), um über eine externe SAS-Verbindung (118 ) oder eine externe SATA-Verbindung (118 ) Daten mit der externen Quelle (130 ) auszutauschen, kann ausgeführt werden, indem Datenübermittlungen und Befehle, die über die erste externe Schnittstelle gesendet werden würden, auf die zweite externe Schnittstelle verlagert werden. - In dem Beispiel von
3 beinhaltet das Verwenden der zweiten externen Schnittstelle (114 ), um über eine externe SAS-Verbindung (118 ) oder eine externe SATA-Verbindung (118 ) Daten mit der externen Quelle (130 ) auszutauschen, wahlweise ein Übermitteln (306 ) einer Meldung (320 ) über die zweite externe Schnittstelle (114 ) zu der externen Quelle (130 ). In dem Beispiel von3 zeigt die Meldung einen Fehler der externen PCIe-Verbindung (116 ) an. Das Übermitteln (306 ) einer Meldung (320 ) über die zweite externe Schnittstelle (114 ) zu der externen Quelle (130 ) kann ausgeführt werden, indem Fehlermitteilungsdaten in eine Meldung gesetzt werden und die Meldung übermittelt wird. - Zur weiteren Erläuterung zeigt
4 einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Das Verfahren von4 ähnelt dem Verfahren von3 insofern, als das Verfahren von4 auch ein Empfangen (202 ) eines ersten Befehls (120 ) an der ersten externen Schnittstelle (112 ) beinhaltet, wobei der Befehl von einer Quelle (130 ) kommt, die sich außerhalb der Speichereinheit (102 ) befindet, sowie ein Empfangen (204 ) eines zweiten Befehls (122 ) an der zweiten externen Schnittstelle (114 ), wobei der Befehl von einer externen Quelle (130 ) kommt, ein gleichzeitiges Ausführen (206 ) des ersten Befehls (120 ) unter Verwendung eines PCIe-Protokolls (198 ) und des zweiten Befehls (122 ) unter Verwendung eines SAS-Protokolls (194 ) oder eines SATA-Protokolls (196 ), ein Erkennen (302 ) eines Fehlers einer externen PCIe-Verbindung (116 ) zwischen der ersten externen Schnittstelle (112 ) und der externen Quelle (130 ) und als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung (116 ) ein Verwenden der zweiten externen Schnittstelle (114 ), um über eine externe SAS-Verbindung (118 ) oder eine externe SATA-Verbindung (118 ) Daten mit der externen Quelle (130 ) auszutauschen. - Das Verfahren von
4 beinhaltet ferner ein Aussetzen (402 ) der Verarbeitung an der ersten externen Schnittstelle (112 ) durch die hybride Steuereinheit (108 ). Das Aussetzen (402 ) der Verarbeitung an der ersten externen Schnittstelle (112 ) durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem die Übermittlung oder der Empfang von Befehlen oder Daten an der ersten externen Schnittstelle verhindert wird. - Das Verfahren von
4 beinhaltet ferner ein Löschen (404 ) durch die hybride Steuereinheit (108 ) von unerledigten Befehlen (422 ), die von der ersten externen Schnittstelle (112 ) empfangen werden. Das Löschen (404 ) durch die hybride Steuereinheit (108 ) von unerledigten Befehlen (422 ), die von der ersten externen Schnittstelle (112 ) empfangen werden kann ausgeführt werden, indem die unerledigten Befehle identifiziert und die unerledigten Befehle entfernt werden. - Das Verfahren von
4 beinhaltet ferner als Reaktion auf das Löschen der unerledigten Befehle (422 ) von der ersten externen Schnittstelle (122 ) ein Abschalten der Speichereinheit (102 ) durch die hybride Steuereinheit (108 ). Das Abschalten (406 ) der Speichereinheit (102 ) durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem ein Abschaltverfahren durchgeführt wird, das ein Ausschalten von einer oder mehreren Komponenten der Speichereinheit beinhaltet. - Zur weiteren Erläuterung zeigt
5 einen Ablaufplan, der ein weiteres beispielhaftes Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit gemäß Ausführungsformen der vorliegenden Erfindung veranschaulicht. Das Verfahren von4 ähnelt dem Verfahren von3 insofern, als das Verfahren von4 auch ein Empfangen (202 ) eines ersten Befehls (120 ) an der ersten externen Schnittstelle (112 ) beinhaltet, wobei der Befehl von einer Quelle (130 ) kommt, die sich außerhalb der Speichereinheit (102 ) befindet, sowie ein Empfangen (204 ) eines zweiten Befehls (122 ) an der zweiten externen Schnittstelle (114 ), wobei der Befehl von einer externen Quelle (130 ) kommt, ein gleichzeitiges Ausführen (206 ) des ersten Befehls (120 ) unter Verwendung eines PCIe-Protokolls (198 ) und des zweiten Befehls (122 ) unter Verwendung eines SAS-Protokolls (194 ) oder eines SATA-Protokolls (196 ), ein Erkennen (302 ) eines Fehlers einer externen PCIe-Verbindung (116 ) zwischen der ersten externen Schnittstelle (112 ) und der externen Quelle (130 ) und als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung (116 ) ein Verwenden der zweiten externen Schnittstelle (114 ), um über eine externe SAS-Verbindung (118 ) oder eine externe SATA-Verbindung (118 ) Daten mit der externen Quelle (130 ) auszutauschen. - Das Verfahren von
5 beinhaltet ein Umschalten (502 ) von einem PCIe-Modus zu einem SAS-Modus oder einem SATA-Modus durch die hybride Steuereinheit (108 ). Im PCIe-Modus kann die hybride Steuereinheit (108 ) als eine PCIe-Einheit fungieren, im SAS-Modus oder SATA-Modus kann die hybride Steuereinheit (108 ) dagegen als eine SAS-Einheit bzw. eine SATA-Einheit fungieren. Im PCIe-Modus zum Beispiel kann die hybride Steuereinheit nur E/A-Befehle im PCIe-Protokollformat zulassen, während die hybride Steuereinheit im SATA-Modus E/A-Befehle im SATA-Protokollformat zulassen kann. Das Umschalten (502 ) von einem PCIe-Modus in einen SAS-Modus oder SATA-Modus durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem die erste externe Schnittstelle abgeschaltet wird. - Das Verfahren von
5 beinhaltet als Reaktion auf das Umschalten in den SAS-Modus oder den SATA-Modus ein Empfangen (504 ) eines Eingangs-/Ausgangs(E/A)-Befehls (522 ) von der externen Quelle (130 ) über die zweite externe Schnittstelle (114 ) durch die hybride Steuereinheit (108 ). Das Empfangen (504 ) eines Eingangs-/Ausgangs(E/A)-Befehls von der externen Quelle (130 ) über die zweite externe Schnittstelle (114 ) durch die hybride Steuereinheit (108 ) kann ausgeführt werden, indem ein E/A-Befehl im SAS-Protokollformat oder SATA-Protokollformat empfangen wird. - Beispielhafte Ausführungsformen der vorliegenden Erfindung werden im Zusammenhang mit einem voll funktionsfähigen Computersystem zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit ausführlich beschrieben. Fachlich versierte Leser erkennen jedoch, dass die vorliegende Erfindung auch in einem Computerprogrammprodukt ausgeführt werden kann, das in einem computerlesbaren Speichermedium angeordnet ist, um mit einem beliebigen geeigneten Datenverarbeitungssystem verwendet zu werden. Bei einem solchen computerlesbaren Speichermedium kann es sich um ein beliebiges Speichermedium für maschinenlesbare Informationen, darunter magnetische Medien, optische Medien, oder andere geeignete Medien handeln. Zu Beispielen solcher Medien gehören Magnetplatten in Festplattenlaufwerken oder Disketten, Compact Disks für optische Laufwerke, ein Magnetband oder Sonstiges, wie für Fachleute ersichtlich ist. Fachleute werden auch unmittelbar erkennen, dass ein beliebiges Computersystem mit geeigneten Programmierungsmitteln die Schritte des Verfahrens der Erfindung wie in einem Computerprogrammprodukt ausgeführt durchführen kann. Obwohl sich einige in dieser Beschreibung vorgestellte beispielhafte Ausführungsformen auf Software beziehen, die auf Computer-Hardware installiert und ausgeführt wird, ist Fachleuten ersichtlich, dass alternative Ausführungsformen, die als Firmware oder als Hardware umgesetzt sind, dennoch im Schutzbereich der vorliegenden Erfindung liegen.
- Für den Fachmann ist ersichtlich, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden können. Aspekte der vorliegenden Erfindung können daher die Form einer kompletten Hardware-Ausführung, einer kompletten Software-Ausführung (einschließlich Firmware, residenter Software, Mikrocode usw.) oder eine Ausführungsform haben, bei der Hardware- und Software-Aspekte kombiniert sind, die allgemein hier als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Aspekte der vorliegenden Erfindung können des Weiteren die Form eines Computerprogrammprodukts haben, das in einem oder mehreren computerlesbaren Medien ausgeführt ist, die über einen darin enthaltenen computerlesbaren Programmcode verfügen.
- Eine beliebige Kombination von einem computerlesbaren Medium oder mehreren computerlesbaren Medien kann bzw. können verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder eine geeignete Kombination davon handeln, ohne darauf beschränkt zu sein. Zu genaueren Beispielen (einer nicht vollständigen Liste) für das computerlesbare Speichermedium gehören wie folgt: eine elektrische Verbindung mit einer oder mehreren Leitungen, ein tragbarer Computer-Diskettenspeicher, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer, programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination davon. Im Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium ein beliebiges physisches Medium sein, das ein Programm enthalten oder speichern kann, welches von oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen verwendet wird.
- Ein computerlesbares Signalmedium kann ein weitergeleitetes Datensignal mit darin enthaltenem computerlesbarem Programmcode umfassen, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches weitergeleitetes Signal kann eine Vielfalt von Formen haben, einschließlich elektromagnetische, optische Formen oder eine geeignete Kombination davon, ohne darauf beschränkt zu sein. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Befehlen übertragen, weitergegeben oder transportieren kann.
- In einem computerlesbaren Medium enthaltener Programmcode kann unter Verwendung eines geeigneten Mediums übermittelt werden, das drahtlos, drahtgebunden, Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination davon sein kann, ohne darauf beschränkt zu sein.
- Der Computerprogrammcode zum Ausführen der Operationen in Verbindung mit Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben werden, zu denen eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder ähnliche sowie herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen gehören. Der Programmcode kann ganz auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder ganz auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über ein beliebiges Netz mit dem Computer des Benutzers verbunden sein, zum Beispiel über ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder es kann die Verbindung zu einem externen Computer hergestellt werden (beispielsweise über das Internet durch einen Internetdienstanbieter).
- Aspekte der vorliegenden Erfindung werden obenstehend unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalrechners, Spezialrechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Maßnahmen umzusetzen.
- Diese Computerprogrammbefehle können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten steuern kann, um auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsartikel einschließlich der Befehle erzeugen, die die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegte Funktion/Maßnahme umsetzen.
- Die Computerprogrammbefehle können ferner in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von Funktionsschritten auszulösen, die auf dem Computer, in der anderen programmierbaren Vorrichtung oder den anderen Einheiten durchgeführt werden, um einen computerausgeführten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder in der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse bereitstellen, um die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds festgelegten Funktionen/Maßnahmen umzusetzen.
- Der Ablaufplan und die Blockschaubilder in den Figuren zeigen die Architektur, Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung, In dieser Hinsicht kann jeder Block in dem Ablaufplan oder den Blockschaubildern ein Modul, Segment oder einen Teil eines Codes darstellen, das/der einen oder mehrere ausführbare Befehle zur Umsetzung der festgelegten Logikfunktion(en) umfasst. Es ist ferner darauf hinzuweisen, dass die im Block angegebenen Funktionen bei einigen alternativen Ausführungen in einer anderen Reihenfolge als in den Figuren dargestellt ablaufen können. Zwei aufeinanderfolgend dargestellte Blöcke können zum Beispiel tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach entsprechender Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Des Weiteren ist darauf hinzuweisen, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellung sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, die die angegebenen Funktionen oder Maßnahmen bzw. Kombinationen von speziellen Hardware- und Computerbefehlen durchführen.
- Aus der vorstehenden Beschreibung geht hervor, dass an verschiedenen Ausführungsformen der vorliegenden Erfindung Abwandlungen und Änderungen vorgenommen werden können, ohne vom eigentlichen Gedanken abzuweichen. Die Darstellungen in dieser Beschreibung dienen nur zur Veranschaulichung und sind nicht in einschränkendem Sinne auszulegen. Der Geltungsbereich der vorliegenden Erfindung wird lediglich durch die Sprache der folgenden Ansprüche beschränkt.
Claims (9)
- Verfahren zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit (108), wobei die Speichereinheit eine interne Peripheral-Component-Interconnect-Express(PCIe)-Schnittstelle aufweist, um einen Halbleiterspeicher in der Speichereinheit zu steuern, wobei die Speichereinheit die hybride Steuereinheit, eine erste externe Schnittstelle (112) und eine zweite externe Schnittstelle (114) enthält, wobei die erste externe Schnittstelle so konfiguriert ist, dass sie eine externe PCIe-Verbindung herstellt, wobei die zweite externe Schnittstelle so konfiguriert ist, dass sie mindestens eine externe Serial-Attached-Small-Computer-System-Interface(SAS)-Verbindung oder eine externe Serial-Advanced-Technology-Attachment(SATA)-Verbindung herstellt, wobei das Verfahren aufweist: Empfangen (202) eines ersten Befehls an der ersten externen Schnittstelle durch die hybride Steuereinheit, wobei der Befehl von einer Quelle kommt, die sich außerhalb der Speichereinheit befindet; Empfangen (204) eines zweiten Befehls an der zweiten externen Schnittstelle durch die hybride Steuereinheit, wobei der Befehl von der externen Quelle kommt; gleichzeitiges Ausführen (206) des ersten Befehls unter Verwendung eines PCIe-Protokolls sowie des zweiten Befehls unter Verwendung eines SAS-Protokolls oder eines SATA-Protokolls durch die hybride Steuereinheit; Erkennen (302) eines Fehlers einer externen PCIe-Verbindung zwischen der ersten externen Schnittstelle und der externen Quelle durch die hybride Steuereinheit; und als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung Verwenden (304) der zweiten externen Schnittstelle, um über eine externe SAS-Verbindung oder eine externe SATA-Verbindung Daten mit der externen Quelle auszutauschen.
- Verfahren nach
Anspruch 1 , bei dem: der erste Befehl einen PCIe-E/A-Befehl aufweist; und der zweite Befehl einen Verwaltungsbefehl aufweist, um auf Verwaltungsdatenregister in der hybriden Steuereinheit zuzugreifen, wobei die Verwaltungsdatenregister Verwaltungsdaten speichern, die dem Halbleiterspeicher entsprechen. - Verfahren nach
Anspruch 1 , wobei das Verwenden der zweiten externen Schnittstelle, um über eine externe SAS-Verbindung oder eine externe SATA-Verbindung Daten mit der externen Quelle auszutauschen, ein Übermitteln einer Meldung über die zweite externe Schnittstelle zu der externen Quelle beinhaltet, wobei die Meldung einen Fehler der externen PCIe-Verbindung anzeigt. - Verfahren nach
Anspruch 1 , weiterhin aufweisend: Aussetzen der Verarbeitung an der ersten externen Schnittstelle durch die hybride Steuereinheit; Löschen durch die hybride Steuereinheit von unerledigten Befehlen, die von der ersten externen Schnittstelle empfangen wurden; und als Reaktion auf das Löschen der unerledigten Befehle von der ersten externen Schnittstelle ein Abschalten der Speichereinheit durch die hybride Steuereinheit. - Verfahren nach
Anspruch 1 , weiterhin aufweisend: Umschalten von einem PCIe-Modus zu einem SAS-Modus oder einem SATA-Modus durch die hybride Steuereinheit; und als Reaktion auf das Umschalten in den SAS-Modus oder den SATA-Modus Empfangen eines Eingangs-/Ausgangs(E/A)-Befehls von der externen Quelle über die zweite externe Schnittstelle durch die hybride Steuereinheit. - Vorrichtung zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit (108), wobei die Speichereinheit eine interne Peripheral-Component-Interconnect-Express(PCIe)-Schnittstelle aufweist, um einen Halbleiterspeicher in der Speichereinheit zu steuern, wobei die Speichereinheit die hybride Steuereinheit, eine erste externe Schnittstelle (112) und eine zweite externe Schnittstelle (114) enthält, wobei die erste externe Schnittstelle so konfiguriert ist, dass sie eine externe PCIe-Verbindung herstellt, wobei die zweite externe Schnittstelle so konfiguriert ist, dass sie mindestens eine externe Serial-Attached-Small-Computer-System-Interface (SAS)-Verbindung oder eine externe Serial-Advanced-Technology-Attachment(SATA)-Verbindung herstellt, wobei die Vorrichtung einen Computerprozessor, einen Computerspeicher, der funktionsmäßig mit dem Computerprozessor verbunden ist, aufweist, wobei in dem Computerspeicher Computerprogrammbefehle angeordnet sind, die, wenn sie von dem Computerprozessor ausgeführt werden, bewirken, dass die Vorrichtung die Schritte ausführt: Empfangen (202) eines ersten Befehls an der ersten externen Schnittstelle durch die hybride Steuereinheit, wobei der Befehl von einer Quelle kommt, die sich außerhalb der Speichereinheit befindet; Empfangen (204) eines zweiten Befehls an der zweiten externen Schnittstelle durch die hybride Steuereinheit, wobei der Befehl von der externen Quelle kommt; gleichzeitiges Ausführen (206) des ersten Befehls unter Verwendung eines PCIe-Protokolls sowie des zweiten Befehls unter Verwendung eines SAS-Protokolls oder eines SATA-Protokolls durch die hybride Steuereinheit; Erkennen (302) eines Fehlers einer externen PCIe-Verbindung zwischen der ersten externen Schnittstelle und der externen Quelle durch die hybride Steuereinheit; und als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung Verwenden (304) der zweiten externen Schnittstelle, um über eine externe SAS-Verbindung oder eine externe SATA-Verbindung Daten mit der externen Quelle auszutauschen.
- Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit (108), wobei die Speichereinheit eine interne Peripheral-Component-Interconnect-Express(PCIe)-Schnittstelle aufweist, um einen Halbleiterspeicher in der Speichereinheit zu steuern, wobei die Speichereinheit die hybride Steuereinheit, eine erste externe Schnittstelle (112) und eine zweite externe Schnittstelle (114) enthält, wobei die erste externe Schnittstelle so konfiguriert ist, dass sie eine externe PCIe-Verbindung herstellt, wobei die zweite externe Schnittstelle so konfiguriert ist, dass sie mindestens eine externe Serial-Attached-Small-Computer-System-Interface(SAS)-Verbindung oder eine externe Serial-Advanced-Technology-Attachment(SATA)-Verbindung herstellt, wobei das Computerprogrammprodukt auf einem computerlesbaren Medium angeordnet ist, wobei das Computerprogrammprodukt Computerprogrammbefehle aufweist, die, wenn sie ausgeführt werden, bewirken, dass ein Computer die Schritte ausführt: Empfangen (202) eines ersten Befehls an der ersten externen Schnittstelle durch die hybride Steuereinheit, wobei der Befehl von einer Quelle kommt, die sich außerhalb der Speichereinheit befindet; Empfangen (204) eines zweiten Befehls an der zweiten externen Schnittstelle durch die hybride Steuereinheit, wobei der Befehl von der externen Quelle kommt; gleichzeitiges Ausführen (206) des ersten Befehls unter Verwendung eines PCIe-Protokolls sowie des zweiten Befehls unter Verwendung eines SAS-Protokolls oder eines SATA-Protokolls durch die hybride Steuereinheit; Erkennen (302) eines Fehlers einer externen PCIe-Verbindung zwischen der ersten externen Schnittstelle und der externen Quelle durch die hybride Steuereinheit; und als Reaktion auf das Erkennen des Fehlers der externen PCIe-Verbindung Verwenden (304) der zweiten externen Schnittstelle, um über eine externe SAS-Verbindung oder eine externe SATA-Verbindung Daten mit der externen Quelle auszutauschen.
- Computerprogrammprodukt nach
Anspruch 7 , bei dem das computerlesbare Medium ein Signalmedium aufweist. - Computerprogrammprodukt nach
Anspruch 7 , bei dem das computerlesbare Medium ein Speichermedium aufweist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/412,088 US9158459B2 (en) | 2012-03-05 | 2012-03-05 | Managing a storage device using a hybrid controller |
US13/412,088 | 2012-03-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102013202627A1 DE102013202627A1 (de) | 2013-09-05 |
DE102013202627B4 true DE102013202627B4 (de) | 2020-08-13 |
Family
ID=48048643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102013202627.7A Active DE102013202627B4 (de) | 2012-03-05 | 2013-02-19 | Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit |
Country Status (4)
Country | Link |
---|---|
US (2) | US9158459B2 (de) |
CN (1) | CN103309623B (de) |
DE (1) | DE102013202627B4 (de) |
GB (1) | GB2501587B (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943234B1 (en) * | 2013-08-05 | 2015-01-27 | Lsi Corporation | Multi-protocol storage controller |
US20150074293A1 (en) * | 2013-09-10 | 2015-03-12 | Kabushiki Kaisha Toshiba | Information processing system, storage device and controlling method of storage device |
CN103984646B (zh) * | 2014-06-05 | 2018-01-02 | 浪潮电子信息产业股份有限公司 | 一种基于pcie数据传输的存储系统设计方法 |
CN104021107A (zh) * | 2014-06-27 | 2014-09-03 | 浪潮电子信息产业股份有限公司 | 一种支持NVMe PCIE SSD系统设计方法 |
US10338838B2 (en) | 2017-03-24 | 2019-07-02 | Samsung Electronics Co., Ltd. | Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface |
US10621117B2 (en) | 2017-06-15 | 2020-04-14 | Micron Technology, Inc. | Controlling memory devices using a shared channel |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917682B2 (en) * | 2007-06-27 | 2011-03-29 | Emulex Design & Manufacturing Corporation | Multi-protocol controller that supports PCIe, SAS and enhanced Ethernet |
US20110202707A1 (en) * | 2010-02-17 | 2011-08-18 | Seagate Technology Llc | Nvmhci attached hybrid data storage |
US20110225352A1 (en) * | 2007-08-13 | 2011-09-15 | Duran Paul A | Apparatus and system for object-based storage solid-state drive |
US20110239009A1 (en) * | 2010-03-26 | 2011-09-29 | Buffalo Inc. | Storage device |
US20110264840A1 (en) * | 2010-04-26 | 2011-10-27 | Dell Products L.P. | Systems and methods for improving connections to an information handling system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6886057B2 (en) | 2002-06-06 | 2005-04-26 | Dell Products L.P. | Method and system for supporting multiple bus protocols on a set of wirelines |
US7801120B2 (en) | 2003-01-13 | 2010-09-21 | Emulex Design & Manufacturing Corporation | Method and system for efficient queue management |
US7664909B2 (en) | 2003-04-18 | 2010-02-16 | Nextio, Inc. | Method and apparatus for a shared I/O serial ATA controller |
US7353302B2 (en) | 2003-12-31 | 2008-04-01 | Intel Corporation | Selectable communication control between devices communicating using a serial attached SCSI (SAS) protocol |
US7673080B1 (en) | 2004-02-12 | 2010-03-02 | Super Talent Electronics, Inc. | Differential data transfer for flash memory card |
JP2008165489A (ja) | 2006-12-28 | 2008-07-17 | Fujitsu Ltd | 記憶装置及び制御方法 |
TW200834407A (en) | 2007-02-05 | 2008-08-16 | Prolific Technology Inc | A storage device with automatic interface-switching function |
US8140724B1 (en) * | 2008-08-22 | 2012-03-20 | Marvell International Ltd. | SATA pass through port |
KR100922635B1 (ko) | 2008-12-02 | 2009-10-22 | (주) 제노맥스 | Pci 익스프레스 버스 기반 테스터 인터페이스 장치 |
JP2010205216A (ja) * | 2009-03-06 | 2010-09-16 | Fujitsu Ltd | バス変換装置、情報処理装置、制御方法 |
CN201828901U (zh) | 2010-05-20 | 2011-05-11 | 北京盛讯美恒科技发展有限公司 | 一种存储功能卡 |
US8966176B2 (en) * | 2010-05-27 | 2015-02-24 | Sandisk Il Ltd. | Memory management storage to a host device |
CN201918609U (zh) | 2010-11-09 | 2011-08-03 | 百慕大商泰科资讯科技有限公司 | 连接器 |
CN202041958U (zh) | 2010-11-17 | 2011-11-16 | 北京曙光天演信息技术有限公司 | 一种支持sata接口的加密卡 |
CN102902489B (zh) | 2012-08-17 | 2015-09-09 | 杭州华澜微电子股份有限公司 | 一种双界面存储控制器及其系统 |
-
2012
- 2012-03-05 US US13/412,088 patent/US9158459B2/en active Active
-
2013
- 2013-02-19 DE DE102013202627.7A patent/DE102013202627B4/de active Active
- 2013-02-20 GB GB201302920A patent/GB2501587B/en active Active
- 2013-03-05 CN CN201310068609.8A patent/CN103309623B/zh active Active
-
2015
- 2015-08-25 US US14/834,646 patent/US10198305B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917682B2 (en) * | 2007-06-27 | 2011-03-29 | Emulex Design & Manufacturing Corporation | Multi-protocol controller that supports PCIe, SAS and enhanced Ethernet |
US20110225352A1 (en) * | 2007-08-13 | 2011-09-15 | Duran Paul A | Apparatus and system for object-based storage solid-state drive |
US20110202707A1 (en) * | 2010-02-17 | 2011-08-18 | Seagate Technology Llc | Nvmhci attached hybrid data storage |
US20110239009A1 (en) * | 2010-03-26 | 2011-09-29 | Buffalo Inc. | Storage device |
US20110264840A1 (en) * | 2010-04-26 | 2011-10-27 | Dell Products L.P. | Systems and methods for improving connections to an information handling system |
Also Published As
Publication number | Publication date |
---|---|
DE102013202627A1 (de) | 2013-09-05 |
CN103309623A (zh) | 2013-09-18 |
GB2501587A (en) | 2013-10-30 |
US20130232376A1 (en) | 2013-09-05 |
US9158459B2 (en) | 2015-10-13 |
US10198305B2 (en) | 2019-02-05 |
US20150363259A1 (en) | 2015-12-17 |
GB2501587B (en) | 2014-08-13 |
GB201302920D0 (en) | 2013-04-03 |
CN103309623B (zh) | 2016-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102013202627B4 (de) | Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit | |
DE102020120102A1 (de) | Globale dauerhafte Speicherleerung | |
DE102013110085B4 (de) | Nicht-flüchtige speichervorrichtung | |
DE102010019487B4 (de) | Speichervorrichtung, Datenverarbeitungsvorrichtung und Verfahren | |
DE102019122363A1 (de) | Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte) | |
DE102018004327A1 (de) | Systeme und Verfahren zum Zugreifen auf Massenspeicher als Arbeitsspeicher | |
DE112012005222T5 (de) | Halbleiter-Datenspeicherverwaltung | |
DE102012210232B4 (de) | Vorbeugende Speicherreparatur auf der Grundlage der Analyse einer Vielzahl von Symbolen und Bereinigungszyklen | |
DE102018105943A1 (de) | Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem | |
DE112018000180T5 (de) | System und verfahren zum adaptiven senden frühzeitiger beendigung unter verwendung eines steuerungsspeicherpuffers | |
DE102017121465A1 (de) | Datenprotokoll zum verwalten von peripheriegeräten | |
DE112013005090T5 (de) | Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit | |
DE102011014588A1 (de) | Multicasting-Schreibanforderungen an Mehrfachspeicher-Controller | |
DE202010017669U1 (de) | Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung | |
DE112007000688B4 (de) | Fehlerverwaltungstopologien | |
DE112018000839T5 (de) | Datenspeichervorrichtung, die eingerichtet ist, um Vorgänge unter Verwendung einer drahtlosen Schnittstelle durchzuführen | |
DE112018001088T5 (de) | Anwendung von framing-regeln für eine hochgeschwindigkeitsdatenverbindung | |
DE102020211544A1 (de) | Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben | |
DE112018007637T5 (de) | Fehlermeldung in Verbindungsverlängerungsvorrichtungen | |
DE102020105939A1 (de) | Enhanced-Serial-Peripheral-Interface-(eSPI)-Signalisierung zurAbsturzereignisbenachrichtigung | |
DE102018131983A1 (de) | Switch-unterstützte datenspeicher-netzwerkverkehrsverwaltung in einem rechenzentrum | |
DE112016001739T5 (de) | Busschnittstellensystem | |
DE102016004567A1 (de) | Verifizierung von speichermedien im moment der verwendung | |
DE102019129618A1 (de) | Befördern früher hinweisinformationen für zustandsänderungen physikalischer verbindungsstrecken | |
DE112020000124T5 (de) | Ausführung von open-channel-vektorbefehlen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R082 | Change of representative |
Representative=s name: SCHWEIGER & PARTNER, DE |
|
R082 | Change of representative |
Representative=s name: SCHWEIGER & PARTNER, DE |
|
R081 | Change of applicant/patentee |
Owner name: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. L, SG Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US Effective date: 20150113 |
|
R082 | Change of representative |
Representative=s name: SCHWEIGER & PARTNER, DE Effective date: 20141021 Representative=s name: SCHWEIGER & PARTNER, DE Effective date: 20150113 Representative=s name: SCHWEIGER & PARTNERS, DE Effective date: 20141021 Representative=s name: SCHWEIGER & PARTNERS, DE Effective date: 20150113 |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R082 | Change of representative |
Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE |