Schnittstelle für Festplattenlaufwerke

Schnittstelle für Festplattenlaufwerke

Es wird oft gesagt, dass die Festplattenschnittstelle ein Engpass bei der Datenübertragung ist. Bei Festplatten werden die Daten beispielsweise vom Festplattenpuffer zum Festplattenspeichermodul übertragen. Und da der Festplattenpuffer ein Cache-Speicher ist, warum ist dann die Schnittstelle ein Engpass? Ich meine, der Cache ist eine Art SRAM. Die Übertragungsgeschwindigkeit sollte also hoch sein. Warum ist sie nicht so?

Antwort1

Festplatten und SSDs verwenden heutzutage meist eine serielle Verbindung, früher wurde jedoch die IDE-Schnittstelle verwendet. IDE war im Grunde eine vereinfachte Version des ISA-Busses, den frühe PCs verwendeten. In solchen Computern konnten Sie, wie Sie vorschlagen, einfach direkt auf die Geräteregister zugreifen. Aber als PCI auf den Markt kam, war es schneller, sodass ältere IDE-Laufwerke für den direkten Zugriff zu langsam waren. Spätere Versionen von IDE (oder besser gesagt ATA, wie es umbenannt wurde) erhöhten die Geschwindigkeit (allerdings nicht die Breite: PCI war 32 Bit breit, aber ATA blieb bei 16 Bit), aber die Prozessorgeschwindigkeit nahm weiter zu und weder PCI noch ATA konnten mithalten.

Schließlich wechselten wir von der parallelen ATA-Schnittstelle zu einer seriellen Schnittstelle. Dadurch wird die Verbindung zum Prozessor weniger direkt, aber serielle Schnittstellen können viel schneller laufen, sodass sie der vollen Geschwindigkeit viel näher kommen, aber dennoch führt dies zu Latenz und ist langsamer als Fast RAM.

Alte Hochgeschwindigkeits-ATA-Laufwerke verwendeten oft 70- oder 80-ns-Speicher, der mit ähnlicher Geschwindigkeit wie der Bus lief. Moderne Speicher sind schneller, aber bei weitem nicht so viel schneller als der Bus. Ich nehme an, dass moderne Laufwerke von den 16-Bit-Prozessoren, die sie früher verwendeten, auf breitere Busgrößen umgestiegen sind, um den Durchsatz zu erhöhen.

Antwort2

Und da es sich bei dem Festplattenpuffer um einen Cache-Speicher handelt, warum stellt die Schnittstelle dann einen Engpass dar?

Puffer erhöhen die Latenz (mehr Zeit pro Anfrage), da der Inhalt des Puffers/Cache überprüft werden muss. Warum haben wir sie also? Weil die Daten normalerweise linear sind, sodass die Wahrscheinlichkeit groß ist, dass sie sich beim nächsten Überprüfen des Puffers bereits im Puffer befinden und die Festplatte nicht überprüft werden muss.

Das andere Problem ist

Ich meine, der Cache ist eine Art SRAM. Die Übertragungsgeschwindigkeit sollte also hoch sein. Warum ist das nicht so?

Wenn die Daten aus dem Puffer/Cache geladen werden, geht das schnell. Das passiert nur, wenn die Daten bereits da sind. Wenn die Daten nicht im Cache sind, werden sie auf die Festplatte geladen, und das ist langsamer. Wenn die Daten kontinuierlich gelesen werden, sind sie wahrscheinlich nicht im Cache, da Caches im Vergleich zur Festplatte klein sind.

verwandte Informationen