Abstract:
The present idea provides a high read and write performance from/to a solid state memory device. The main memory (31) of the controller (1) is not blocked by a complete address mapping table covering the entire memory device (2). Instead such table is stored in the memory device (2) itself, and only selected portions of address mapping information are buffered in the main memory (31) in a read cache (311) and a write cache (312). A separation of the read cache (311) from the write cache (312) enables an address mapping entry being evictable from the read cache (311) without the need to update the related flash memory page storing such entry in the flash memory device (2). By this design, the read cache (311) may advantageously be stored on a DRAM even without power down protection, while the write cache (312) may preferably be implemented in nonvolatile or other fail-safe memory. This leads to a reduction of the overall provisioning of nonvolatile or fail-safe memory and to an improved scalability and performance.
Abstract:
A device 10 receives data to be stored in a distributed file system 20 from an operating system 30. It determines a characteristic of the data, such as a digest, fingerprint or hash. Based in the characteristic, it selects one of the storage devices 21 in the distributed file system to store the data. The storage device then identifies duplicate blocks and only stores one copy of the duplicates. The device may compare a signature of the data with that of data already stored on the storage devices and select a storage device with data having the same signature. If the write to the storage device fails, the device may select another storage device. The device may also use load balancing to select the storage device.
Abstract:
Die Erfindung bezieht sich auf ein Verfahren zum Wear-Levelling (Ausgleich nachlassender Funktionsfähigkeit) bei Zellen oder Seiten oder Teilseiten oder Blöcken eines Speichers wie zum Beispiel eines Flash-Speichers, wobei das Verfahren aufweist: – Empfangen (S10) eines Blocks von Daten, der in eine Zelle oder Seite oder Teilseite oder einen Block des Speichers geschrieben werden soll; – Zählen (S40), wie häufig ein bestimmter Binärdatentyp ,0' oder ,1' geschrieben werden soll, in dem empfangenen Block von Daten; und – Verteilen (S50) des Schreibens des empfangenen Blocks von Daten auf Zellen oder Seiten oder Teilseiten oder Blöcke des Speichers, sodass die nachlassende Funktionsfähigkeit des Speichers im Hinblick auf die Anzahl des bestimmten Binärdatentyps ,0' oder ,1', die in dem zu schreibenden Block von Daten gezählt worden ist, ausgeglichen wird.
Abstract:
Die vorliegende Idee stellt eine hohe Lese- und Schreibleistung von/in eine(r) Halbleiterspeichereinheit bereit. Der Hauptspeicher (31) der Steuereinheit (1) wird nicht durch eine vollständige Adressenzuordnungstabelle blockiert, welche die gesamte Speichereinheit (2) umfasst. Stattdessen ist eine derartige Tabelle in der Speichereinheit (2) selbst gespeichert, und lediglich ausgewählte Bereiche der Adressenzuordnungsinformationen werden in dem Hauptspeicher (31) in einem Lese-Cachespeicher (311) und einem Schreib-Cachespeicher (312) gepuffert. Eine Trennung des Lese-Cachespeichers (311) von dem Schreib-Cachespeicher (312) ermöglicht es, dass ein Adressenzuordnungseintrag aus dem Lese-Cachespeicher (311) geräumt werden kann, ohne dass ein Aktualisieren der zugehörigen Flash-Speicherseite nötig ist, die einen derartigen Eintrag in der Flash-Speichereinheit (2) speichert. Durch diese Konstruktion kann der Lese-Cachespeicher (311) vorzugsweise selbst in einem DRAM ohne Stromausfallschutz gespeichert werden, während der Schreib-Cachespeicher (312) vorzugsweise in nichtflüchtigem oder einem anderen ausfallsicheren Speicher umgesetzt sein kann. Dies führt zu einer Verringerung der Gesamtbereitstellung von nichtflüchtigem bzw. ausfallsicherem Speicher und zu einer verbesserten Skalierbarkeit und Leistungsfähigkeit.
Abstract:
The present idea provides a high read and write performance from/to a solid state memory device. The main memory (31) of the controller (1) is not blocked by a complete address mapping table covering the entire memory device (2). Instead such table is stored in the memory device (2) itself, and only selected portions of address mapping information are buffered in the main memory (31) in a read cache (311) and a write cache (312). A separation of the read cache (311) from the write cache (312) enables an address mapping entry being evictable from the read cache (311) without the need to update the related flash memory page storing such entry in the flash memory device (2). By this design, the read cache (311) may advantageously be stored on a DRAM even without power down protection, while the write cache (312) may preferably be implemented in nonvolatile or other fail-safe memory. This leads to a reduction of the overall provisioning of nonvolatile or fail-safe memory and to an improved scalability and performance.
Abstract:
Methods and apparatus are provided for controlling flow rates of a plurality of data packet flows into a queue 4 corresponding to a resource 3 of a network device 1 . The flows comprise a set 7 of non-responsive flows, and a set 8 of other flows which may comprise responsive flows and/or flows whose responsiveness is unknown. The flow rates are managed in accordance with a queue management scheme such that adjustments are made to each flow rate in dependence on excess bandwidth in the resource, the amounts of the adjustments being dependent on one or more adjustment parameters for each flow. An error signal is generated based on the deviation from a desired allocation ratio of the ratio of the total flow rates into the queue 4 for the sets of flows 7, 8 . At least one adjustment parameter for at least one flow is then varied in dependence on the error signal in such a manner as to reduce the aforementioned deviation. A closed-loop control scheme thus operates in conjunction with the underlying queue management scheme to promote fair bandwidth allocation even in the presence of a mix of responsive and non-responsive flows.
Abstract:
Methods and apparatus are provided for controlling flow rates of a plurality of data packet flows into a queue 4 corresponding to a resource 3 of a netwo rk device 1. The flows comprise a set 7 of non-responsive flows, and a set 8 of other flows which may comprise responsive flows and/or flows whose responsiveness is unknown. The flow rates are managed in accordance with a queue management scheme such that adjustments are made to each flow rate in dependence on excess bandwidth in the resource, the amounts of the adjustmen ts being dependent on one or more adjustment parameters for each flow. An error signal is generated based on the deviation from a desired allocation ratio o f the ratio of the total flow rates into the queue 4 for the sets of flows 7, 8. At least one adjustment parameter for at least one flow is then varied in dependence on the error signal in such a manner as to reduce the aforementioned deviation. A closed-loop control scheme thus operates in conjunction with the underlying queue management scheme to promote fair bandwidth allocation even in the presence of a mix of responsive and non- responsive flows.
Abstract:
Verfahren zum Deaktivieren von Seiten (700) in einem Datenspeichersystem (120), das ein Array (140) mit nichtflüchtigem Direktzugriffsspeicher (NVRAM-Array) enthält, wobei das Verfahren aufweist:Speichern von Daten (702) in dem NVRAM-Array (140) in Seiten-Stripes (600, 1102), die über mehrere Speicherblöcke (500, 1100) hinweg verteilt sind, wobei wenigstens zwei der mehreren Speicherblöcke (500, 1100), über die ein bestimmter Seiten-Stripe der Seiten-Stripes (600, 1102) verteilt ist, unterschiedliche Anzahlen aktiver Seiten (700) enthalten, wobei es sich bei einer Seite (700) um eine kleinste Einheit handelt, auf die in dem NVRAM-Array (140) zugegriffen werden kann, und es sich bei einem Speicherblock (500, 1100), der mehrere Seiten (700) enthält, um eine kleinste Einheit handelt, die in dem NVRAM-Array (140) gelöscht werden kann;Erkennen (910, 914) eines Fehlers in einer bestimmten Seite (700) eines bestimmten Blocks (500, 1100) des NVRAM-Array (140);in Reaktion auf Erkennen (910, 914) des Fehlers Deaktivieren (916) lediglich der bestimmten Seite (700) des bestimmten Blocks (500, 1100);anschließendes Deaktivieren (920) eines physischen Speicherbereichs in dem NVRAM-Array (140), der die bestimmte Seite (700) und mehrere andere Seiten (700) enthält, in Reaktion auf Deaktivieren (918) einer Schwellenwert-Anzahl von Seiten (700) in dem physischen Speicherbereich;Deaktivieren (924) eines größeren physischen Speicherbereichs in dem NVRAM-Array (140), der die bestimmte Seite (700) enthält, in Reaktion auf Deaktivieren (922) einer Schwellenwert-Anzahl von physischen Speicherbereichen in dem größeren physischen Speicherbereich.
Abstract:
Methods and apparatus are provided for controlling flow rates of a plurality of data packet flows into a queue 4 corresponding to a resource 3 of a network device 1 . The flows comprise a set 7 of non-responsive flows, and a set 8 of other flows which may comprise responsive flows and/or flows whose responsiveness is unknown. The flow rates are managed in accordance with a queue management scheme such that adjustments are made to each flow rate in dependence on excess bandwidth in the resource, the amounts of the adjustments being dependent on one or more adjustment parameters for each flow. An error signal is generated based on the deviation from a desired allocation ratio of the ratio of the total flow rates into the queue 4 for the sets of flows 7, 8 . At least one adjustment parameter for at least one flow is then varied in dependence on the error signal in such a manner as to reduce the aforementioned deviation. A closed-loop control scheme thus operates in conjunction with the underlying queue management scheme to promote fair bandwidth allocation even in the presence of a mix of responsive and non-responsive flows.