Home SSD-controller

SSD-controller

SSD-controller

Een SSD-controller, ook wel processor genoemd, bevat de elektronica die de Flash-geheugencomponenten overbrugt naar de SSD-invoer-/uitvoerinterfaces. De controller is een ingebouwde processor die software op firmwareniveau uitvoert. De SSD-firmware is apparaatspecifiek en kan in de meeste gevallen worden bijgewerkt.

SSD-controller
Bekijk grotere afbeelding

Een SSD-controller, ook wel processor genoemd, bevat de elektronica die de Flash-geheugencomponenten overbrugt naar de SSD-invoer-/uitvoerinterfaces. De controller is een ingebouwde processor die software op firmwareniveau uitvoert. De SSD-firmware is apparaatspecifiek en kan in de meeste gevallen worden bijgewerkt.

SSD-controller
Bekijk grotere afbeelding

Mainstream SSD-controllers bevatten de volgende elektrische elementen, vaak opgenomen in een enkele Integrated Circuit (IC):

  • Geïntegreerde processor - meestal een 32-bits microcontroller
  • Elektrisch wisbare data firmware ROM
  • Systeem RAM
  • Ondersteuning voor extern RAM - meestal DDR/DDR2 als SDRAM
  • Error Correction Code (ECC) circuits
  • Flash-componentinterface - meestal een standaardinterface zoals de Open NAND Flash Interface (ONFI)
  • Host elektrische interface - meestal SATA, USB, SAS of een combinatie

Hoewel de meeste SSD-producten op de markt standaard Flash-componenten gebruiken, zijn er nieuwe Flash-componenten beschikbaar die de ECC en, in sommige gevallen, de volledige controllerfunctie in de Flash-chips zelf integreren. Omwille van dit artikel zullen we ons concentreren op de traditionele controllerfacties zoals hierboven vermeld.

SSD-controllerelementen
Typische SSD Controller-elementen

De onderstaande tabel beschrijft elk van deze elementen in meer detail.

 

Controller-elementen
Beschrijving
Gebruik
Gegevensverwerker
16- of 32-bits ingebedde microcontroller, in de meeste gevallen geprogrammeerd in C en gecompileerd om op de doel-CPU-engine te draaien.
Uitvoering van firmware voor de belangrijkste Flash-toepassing, evenals diagnostiek (SMART), wear leveling (Garbage collection/TRIM), caching en beveiligingsfuncties.
Foutcorrectie (ECC)
Een hardwarefunctie die redundantiebits toevoegt aan elke opgeslagen byte om gegevensfoutdetectie en -correctie bij uitlezing te bieden. 
De datafoutdetectie en -correctie wordt automatisch uitgevoerd in de ECC-hardware om een ​​databetrouwbaarheidsfoutpercentage in de orde van grootte van 1 bit 10E-12 te bereiken.
Flitscontroller
Bevat de adressering, databus en besturing voor het beheer van een of meer Flash-componenten. Een typische SSD-controller kan tot 512 GB aan Flash beheren. 
Typisch de 8-bit Open NAND Flash Interface (ONFI) voor standaard NAND-flash.
 
Kan doorgaans maximaal 16 Flash-componenten aansturen.
DRAM-controller
Bevat de adressering, databus en besturing voor het beheer van een of meer DRAM-componenten. Een typische SSD-controller kan tot 256 MB DRAM beheren.
De DRAM wordt hoofdzakelijk gebruikt als buffergeheugen om de gegevensstroom van de Flash-array af te stemmen op de I/O-interface. Dit geheugen kan ook worden gebruikt als datacache om de algehele prestaties te verbeteren. Dit vereist firmware-programmering
I/O-interface (dwz: SATA)
Bevat de native elektrische interface volgens een bepaalde open systeemstandaard zoals SATA, USB of SAS. De interface wordt bestuurd door het firmwarestuurprogramma van de controller. Basic adressering en handshaking wordt gedaan in hardware.
Sommige controllers maken gegevensoverdracht mogelijk tussen interfaces, zoals USB en SATA, zonder tussenkomst van de controller in de gegevensstroom.
Controller-geheugen
Bestaat uit geprogrammeerd geheugen (ROM) en kladblok/buffer-RAM stevig gekoppeld aan de processor. Dit geheugen wordt door de controller gebruikt voor de uitvoering van programma's en voor het opslaan van kladblokwaarden. In sommige toepassingen met beperkte kosten fungeert het RAM-geheugen als de enige gegevensbuffer voor de SSD.
Meestal is 32-64KB ROM en 128-256KB of RAM.
Chipconfiguratie
Bepaalt instellingen voor typen en snelheden van gebruikte geheugenonderdelen, klokingangen, diagnostische I/O en LED-statusuitgangen.
Verschilt per leverancier.
Algemene I / O
Programmeerbare pinnen voor algemeen gebruik beschikbaar voor de toepassing.  
Meestal worden 4-16 pinnen meegeleverd.
Verpakking
 
281-pins BGA is gebruikelijk
208-pins LQFP is gebruikelijk
 

Veelgebruikte SSD-controllers

De gebruikelijke SSD-controllers die vanaf begin 2010 op de markt zijn, zijn onder meer:

  • Indilinx "Barefoot ECO" IDX110MO1
  • Indilinx "Blootsvoets" IDX110M00
  • Intel PC29AS21BA0
  • JMicron JMF602
  • JMicron JMF612
  • Wonder 88SS9174-BJP2
  • Samsung S3C29RBB01-YK40
  • SandForce SF-1200
  • SandForce SF-1500
  • Toshiba T6UG1XBG

Systeemontwerpers voeren een reeks afwegingen uit bij het selecteren van een leverancier en een bepaalde controller voor hun doelproduct en doelmarkt(en). 

De afwegingen zijn onder meer:

  • Programmatisch – kosten, planning, ondersteuning, garantie en beschikbaarheid.
  • Technisch - prestaties, kracht, pakketopties, functies, schaalbaarheid en flexibiliteit.
  • Overig: gemeenschappelijkheid, compatibiliteit, documentatie, ontwikkelingsondersteuning, testen en reputatie.

Tijdens het selectieproces van de controller voert de systeemontwerper dezelfde analyse uit voor de Flash-onderdelen en andere onderdelen die nodig zijn in het ontwerp. Het is een iteratief proces om de juiste combinatie van leveranciers en componenten te vinden om zo goed mogelijk aan de vereisten voor het specifieke product te voldoen.

Vanwege eigendomsredenen zijn niet alle ontwerpgegevens van de controller via internet beschikbaar voor het grote publiek. Er is echter een aanzienlijke hoeveelheid toepassingsdetails die kunnen worden geleerd voor elk van de SSD-controllers op de markt door hun gebruik in bestaande SSD's te bestuderen.

Recensies op StorageReview.com en elders zal helpen bij het onderscheiden van de voordelen van elke controller en het effect ervan op de SSD. Deze contextuele referenties zijn belangrijk, want hoe cruciaal de controller ook is voor de prestaties van een SSD, de prestaties van SSD's kunnen variëren tussen twee verschillende leveranciers, ook al gebruiken ze exact dezelfde SSD-controllercomponent.

Over het algemeen is dit prestatieverschil omdat de twee ontwerpen verschillende Flash-onderdelen gebruikten, een ander aantal Flash-onderdelen, een andere hoeveelheid cachebuffergeheugen of misschien op de een of andere manier geoptimaliseerde firmware gebruikten. Het punt is dat de SDD-controller slechts een onderdeel is van een algemeen SSD-systeemontwerp en hoewel het cruciaal is voor de prestaties, is het niet de enige factor waarmee rekening moet worden gehouden bij het nemen van een SSD-aankoopbeslissing.

Gerelateerde gidsen:

Ga terug naar de SSD-gids