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 PDF

Info

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
Application number
DE102013202627.7A
Other languages
English (en)
Other versions
DE102013202627A1 (de
Inventor
Gary D. Cudak
Christopher J. Hardee
Randall C. Humes
Adam Roberts
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.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
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 Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Publication of DE102013202627A1 publication Critical patent/DE102013202627A1/de
Application granted granted Critical
Publication of DE102013202627B4 publication Critical patent/DE102013202627B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • 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/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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/2012Error 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using 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

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; undals 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.

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 von 1 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 von 1 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) von 1 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 von 1 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 in 2 dargestellt E/A-Verwaltungsbefehle und Verwaltungsbefehle gleichzeitig verarbeiten, wie ferner in 3 dargestellt, kann sie einer externen Quelle einen Fehler der ersten Verbindung über eine zweite Verbindung melden, wie weiterhin in 4 dargestellt, kann sie als Reaktion auf einen Fehler einer Verbindung ein normales Abschalten der Speichereinheit durchführen und wie in 5 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 von 2 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 von 3 ähnelt dem Verfahren von 2 insofern, als das Verfahren von 3 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 von 3 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 von 4 ähnelt dem Verfahren von 3 insofern, als das Verfahren von 4 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 von 4 ähnelt dem Verfahren von 3 insofern, als das Verfahren von 4 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Computerprogrammprodukt nach Anspruch 7, bei dem das computerlesbare Medium ein Signalmedium aufweist.
  9. Computerprogrammprodukt nach Anspruch 7, bei dem das computerlesbare Medium ein Speichermedium aufweist.
DE102013202627.7A 2012-03-05 2013-02-19 Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit Active DE102013202627B4 (de)

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)

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

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

* Cited by examiner, † Cited by third party
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 杭州华澜微电子股份有限公司 一种双界面存储控制器及其系统

Patent Citations (5)

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