Door Willem de Moor

Redacteur

Waarom budgetdrives met HMB toch snel zijn

0

Dram en HMB in ssd's

In de specificaties van ssd's vind je, naast informatie over interfaces, controllers, snelheid en energiegebruik, altijd een van de volgende twee termen terug: dram of HMB. Dram staat voor een chip met DDR-geheugen en HMB betekent Host Memory Buffer. Beide zorgen ze voor caching, maar niet op de manier die je intuïtief zou gokken. Ze cachen namelijk niet de data die je naar je ssd schrijft, maar alleen de informatie over wáár die data wordt opgeslagen.

De belangrijkste cachingfunctie van zowel dram als HMB is namelijk het opslaan van de ftl. Dat is de flash translation layer: een grote tabel die de de logische adressen van data waar het besturingssysteem om vraagt, vertaalt naar de fysieke adressen van die data in het nand. Aangezien de locatie van data in dat nand steeds verandert, moet de tabel continu worden bijgewerkt.

Stappen om data te lezen en te schrijven in een ssd:

  • Via de PCIe-bus krijgt de controller een leesopdracht.
  • De controller raadpleegt de ftl om te zoeken waar de gevraagde data in de fysieke nandchips opgeslagen is.
  • De data wordt uitgelezen en over de PCIe-bus verstuurd.
  • De controller krijgt via de PCIe-bus een schrijfopdracht.
  • De controller raadpleegt de ftl om vrije blokken in het nand te zoeken.
  • De data wordt naar het nand geschreven.
  • De controller werkt de ftl bij met de locatie van nieuwe data (en eventueel verplaatste data).

Als hoge prestaties belangrijk zijn, gebruiken ssd-fabrikanten een dram-cache in om die ftl op te bewaren. Dram is veel sneller dan nand, zodat het opzoeken van een adres op een ssd met cache snel plaats kan vinden. Een extra dram-chip op de ssd kost echter geld en vergt nog extra componenten, waardoor deze op goedkopere drives worden weggelaten om te besparen op de productiekosten.

HMB: caching via het systeemgeheugen

Dat neemt niet weg dat er nog steeds een fysiek adres aan een virtueel (logisch) adres gekoppeld moet worden, en de ftl-tabel dus nog steeds geraadpleegd moet worden. Bij SATA-drives wordt (of werd) de ftl-tabel bij dram-loze drives in het nand opgeslagen, waardoor die drives veel trager waren dan ssd's mét dram-cache. Sinds de opkomst van M.2-ssd's met PCI Express wordt de ftl-tabel in het werkgeheugen van de pc opgeslagen.

De PCIe-interface is, zeker bij PCIe Gen 4- en Gen 5-drives, snel genoeg om het raadplegen in het dram mogelijk te maken zonder dat dit leidt tot een al te grote prestatievermindering. En omdat het werkgeheugen, of systeemgeheugen, van de 'Host' is, wordt die techniek Host Memory Buffer genoemd. Zo kunnen budgetdrives zonder eigen dram dankzij HMB toch relatief snel de ftl-tabel raadplegen en zijn de drives redelijk vlot.

Locatie versus data

De belangrijkste functie van de dram-chip op een ssd is dus het cachen van de locatietabel. Die wordt bij elke schrijfactie bijgewerkt en voor elke leesactie geraadpleegd. Het daadwerkelijk cachen van data – het snel wegschrijven van binnenkomende gegevens die op de ssd bewaard moeten worden – wordt primair door het nand gerealiseerd. Een deel van het tlc- of qlc-nand wordt aangesproken als veel sneller slc-nand. Meer hierover lees je in deze explainer.

Reacties

Sorteer op:

Weergave:

Er zijn nog geen reacties geplaatst


Om te kunnen reageren moet je ingelogd zijn