Часто говорят, что интерфейс дисковода является узким местом в передаче данных. Например. в случае жестких дисков данные передаются из буфера жесткого диска в модуль памяти жесткого диска. А поскольку буфер жесткого диска является кеш-памятью, почему интерфейс является узким местом? Я имею в виду, кеш это тип срам. Так что скорость передачи должна быть высокой. Почему не так?
2 ответа
В наши дни жесткие диски и твердотельные накопители чаще всего используют последовательное соединение, но исторически использовался интерфейс IDE. IDE был в основном упрощенной версией шины ISA, которую использовали ранние ПК. На таких компьютерах вы можете просто получить прямой доступ к регистрам устройства, как вы предлагаете. Но когда появился PCI, он был быстрее, поэтому старые диски IDE были слишком медленными для прямого доступа. Более поздние версии IDE (точнее, ATA в том виде, как он был переименован) увеличили скорость (хотя и не ширину: PCI был 32-битным, но ATA остался на 16 битах), но скорость процессора продолжала расти, и ни PCI, ни ATA не могли идти в ногу.
В конце концов мы переключились с параллельного интерфейса ATA на последовательный интерфейс. Это делает подключение к процессору менее прямым, но последовательные интерфейсы могут работать намного быстрее, поэтому они намного ближе к работе на полной скорости, но все же это создает задержку и медленнее, чем быстрая оперативная память.
Старые высокоскоростные диски ATA часто использовали память 70 или 80 нс, которая работала с такой же скоростью, что и шина. Современная память быстрее, но далеко не так быстро, как шина. Я полагаю, что современные накопители переключились с 16-разрядных процессоров, которые они использовали, на более широкие размеры шин для увеличения пропускной способности.
А поскольку буфер жесткого диска является кеш-памятью, почему интерфейс является узким местом?
Буферы добавляют задержку (больше времени на запрос), потому что содержимое буфера / кэша должно быть проверено. Так почему они у нас есть? Поскольку данные обычно линейны, поэтому при следующей проверке буфера вероятность того, что он будет в буфере, уже будет, и диск не должен быть проверен.
Другая проблема
Я имею в виду, кеш это тип срам. Так что скорость передачи должна быть высокой. Почему не так?
Если данные загружаются из буфера / кэша, то это быстро. Это происходит только в том случае, если данные уже есть. Если данные не находятся в кеше, они отправляются на диск, и это происходит медленнее. Если данные читаются непрерывно, то, скорее всего, их нет в кеше, так как кеши меньше по сравнению с диском.