Så meget som det kan virke som det, kan en CPU faktisk ikke direkte kommunikere med en harddisk. Dette er tilfældet for HDD'er og SSD'er. Det var også tilfældet for disketter, før de blev forældede. Faktisk er der to forskellige oversættelseslag mellem harddisken og CPU'en. Bundkortet har et sæt værtscontroller-adaptere.
Disse afkoder signalerne fra deres respektive dataoverførselsbusser til et format, som CPU'en kan forstå. Værtscontroller-adaptere koder også instruktioner fra CPU'en til en harddisk. I den anden ende har du harddiskcontrolleren, som koder data fra harddisken til at blive transmitteret over den respektive bus og afkoder data fra bussen til at blive forstået af harddisken.
Hvad gør en harddiskcontroller?
Historisk set tog harddiskcontrollere form af udvidelseskort, der skulle tilsluttes bundkortet. Selve harddisken skulle så sættes i udvidelseskortet i stedet for i et stik på bundkortet. Moderne drev har dog harddiskcontrolleren fuldt integreret i drevchassiset. Dette kan ofte ses som et printkort under en harddisk.
Funktionaliteten af en harddiskcontroller forbliver den samme. Det er beregnet til at styre operationer på disken og kan anvende lageralgoritmer. For eksempel i tidlige enheder kunne kørelængdebegrænsede algoritmer såsom Prism-lagringsalgoritmen fordoble lagringstætheden ved at komprimere data, som de blev skrevet.
I en HDD konverterer harddiskcontrolleren de signaler, der læses af læsehovedet og skrives af skrivehovedet. Det samme sker på en diskette, selvom disse har separate diskettecontrollere. I SSD'er styrer harddiskcontrolleren også adgangstimingen af den faktiske flashhukommelse, som er ikke-mekanisk af natur og skal synkroniseres med et ur.
Dataene fra harddiskcontrolleren sendes derefter over den perifere bus til værtscontrolleradapteren. Værtscontrolleradapteren konverterer derefter signalet til det format, der bruges af bundkortets bus, så CPU'en kan afkode det og læse resultatet ind i hukommelsen.
Nogle computere kan have en anden controller mellem harddiskcontrolleren og værtscontrolleradapteren. Disse er almindeligt kendt som RAID-kort eller disk array-controllere. Disse gør det muligt at danne et hardware-RAID-array. I nogle tilfælde kan RAID-controlleren være integreret i værtscontrolleradapteren.
Konklusion
En harddiskcontroller gør det muligt for harddiske at kommunikere over deres respektive kommunikationsbus, dvs. SATA. Bundkortet konverterer disse signaler til et format, som CPU'en kan forstå. Historisk set blev harddiskcontrollere implementeret som udvidelseskort, som harddiske var tilsluttet.
I moderne enheder er harddiskcontrollere nu integreret på den faktiske harddisk, hvilket reducerer plads og kompleksitet og skærer ned på antallet af nødvendige udvidelseskort. Hvad er dine tanker om emnet? Del dine tanker i kommentarerne nedenfor.