WD hat selbst in umfangreichen HMB Workflow studies (RU 17) die L2P Tables bei 16MB mit 98,6% Adressierung abgedeckt.
100% wurden dabei schon mit 38MB erreicht die 40MB der Fikwot ist absolut deckend.
Das habe ich
hier gefunden, aber wie vermutet, bezieht es sich auf synthetische Benchmarks:
Bei mir läuft da aber eben einiges mehr, auch VMs und nicht nur eine und gerne auch eine mit einer Datenbank. Daher gibt es bei meiner SSD regelmäßig Zugriffe über einen viel größeren Adressraum als in diesen Benchmarks und idealerweise hat der DRAM Cache 1GB RAM pro 1TB Kapazität, so dass man mit 40MB HMB dann nur einen Adressraum von 40GB abdecken kann. Gibt es regelmäßig Zugriffe über einen größeren Adressraum, wird man den Nachteil des fehlenden DRAM Cache also auch bei der Fikwot merken. Den meisten Heimanwendern mag so eine DRAM lesss NVMe SSD mit HMB ja genügen, aber wer behauptet der HMB könnte einen DRAM Cache vollständig ersetzen, der ist einfach nur unehrlich.
Anandtech hat das damals bei der BG4 mit und ohne HMB ermittelt:
Wie man sieht, reicht der Adressraum für den die Mappingtabelle im internen SRAM des Controllers ausreicht, gerade mal 1GB, also gerade genug für Benchmarks wie AS-SSD oder CDM in deren Defaulteinstellung. Mit HMB reicht es für einen Adressraum von 32GB, also genug für über 95% der Zugriffe der meisten Benchmark wie sie auch WD genutzt hat. Danach fallen die IOPS aber eben massiv ab, weil dann die Cache das der passende Teil der Mappingtabelle im HMB steht, halt immer geringer wird und damit immer öfter erst aus dem NAND nachgeladen werden muss. Zum Vergleich eine 970EVO mit vollem DRAM Cache:
Hier es eine Linie, da eben die ganze Mappingtabelle im DRAM Cache steht und es daher keinen Unterschied macht, auf welche Adresse und damit auch über welchen Adressraum zugegriffen wird. Dies wird man mit HMB so nie erreichen, außer der HMB wäre eben auch so 1GB pro 1TB Kapazität groß.
Wenn die (bis zu) 200MB im volatilem Ram zwischengespeichert werden, bevor sie auf die SSD geschrieben werden
Im HMB wird nur ein kleiner Teil der Mappingtabelle gecacht, aber keine Userdaten und HMB wird auch nur als Lesecache für die Daten der Mappingtabelle verwendet. Bei Schreibzugriffen werden die Änderungen der Mappingtabelle direkt ins NAND geschrieben und dies ist auch bei den SSD mit DRAM Cache so üblich, außer wenn sie eine Full-Power-Loss Protection haben und damit diese Änderungen auch nach einen unerwarteten Spannungsabfällen noch ins NAND zurückschreiben können. Auch der DRAM Cache ist übrigens kein Schreibcache für Userdaten, die paar Userdaten die SSD im Schreibcache halten, meist nur bis es genug sind um eine ganze Page (meist so 16k oder 32k) vollständig beschreiben zu können, halten die Controller in aller Regel in ihrem internen SRAM.
Das war schon bei Intel X-25M so, der ersten modernen Consumer SSD mit DRAM Cache:
HMB Cache ist auch kein DRAM Cache.
Doch natürlich, denn es ist ein Teil des RAMs des Rechners und wer hat hier schon einen Rechner bei dem das RAM kein DRAM ist? Steht doch sogar in dem Zitat welches du unten in dem Beitrag gemacht hast: "The greatest utilization of host
DRAM is to cache mapping information"
HMB speichert die Mapping Table, DRAM dazu auch Nutzerdaten.
Blödsinn, HMB kann nur einen kleinen Bruchteil der Mappigtabelle cachen und der DRAM Cache von SSDs ist nicht als Cache für Nutzerdaten da, anderes als bei HDDs, sondern damit der Controller eben da die Mappingtabelle cache kann. Deshalb ist die Größe des DRAM Cache ja in aller Regel auch proportional zur Kapazität, da die Größe der Mappingtabelle eben auch proportional zur Kapazität ist, wenn man die optimale Datenstruktur einer flachen Tabelle verwendet. Warum eine flache Tabelle optimal ist,
wird deutlich wenn man hier liest wie es vorher gemacht wurde und auf der folgenden Seite den Hinweis: "the table itself should require roughly 100MB of DRAM per 100GB of storage space on the drive itself".
Wer also behauptet eine komplette Mappingtabelle würde in den HMB passen, der zeige bitte Belege dafür und ebenso wenn jemand behauptet, bei SSDs wäre der DRAM Cache für Userdaten zuständig! Außerdem sollte alleine die Tatsache das die NVMe SSDs entweder einen DRAM Cache oder eben HMB nutzen, doch schon deutlich darauf hinweisen, dass beide für die gleichen Daten genutzt werden, sonst würde es ja Sinn machen auch beides zu haben und nicht immer nur entweder oder!